2011-03-22 6 views
0

빌드중인 앱에 대한 사용자 정의 웹보기를 디자인하는 데 몇 주가 걸렸습니다. 안드로이드 WebView를 확장하는 클래스 (myWebView라고 부르 자)가 있습니다. myWebView를 main.xml에 선언했습니다. 다른 UI 요소가 myWebView 앞에 패키지 이름을 추가하는 것처럼 말입니다. 모든 것이 훌륭하게 멋지게 작동했습니다.Android : 사용자 정의 웹보기 및 옵션 메뉴에 문제가 발생했습니다.

확장 된 클래스의 모든 기능을 사용하는 데 몇 주가 지난 후 옵션 메뉴를 구현해야했습니다. 내가 해왔 던 것과 비교해 볼 때 이것은 비교적 간단한 작업이라고 생각했다. onCreateOptionsMenu()를 덮어 쓰고 XML 파일에서 내 메뉴를 팽창 시키려고했습니다. 에뮬레이터에서 앱을 실행하고 메뉴 버튼을 누르면 아무 일도 없었습니다. onCreateOptionsMenu()에 대한 내 코드에 결함이 없었습니다. 나는 일반적인 webview 만 포함 된 간단한 main.xml을 가짜 활동에서 시도했다. 메뉴는 더미 활동에서 작동했습니다. 그런 다음 다양한 다른 방법으로 메뉴를 채우려고 시도했는데 (menu.add()의 여러 구현을 사용하여) 모두 더미 활동을 수행했지만 실제 앱에서는 작동하지 않았습니다. onCreate 및 onCreateOptionsMenu에 있던 것을 제외하고 내 활동에서 모든 것을 삭제하여 내 다른 방법 중 하나가 메뉴 작성을 방해하고 있는지 확인했습니다. 그것은 또한 아무것도 달성하지 못했습니다. 나는 메소드가 호출되는지를보기 위해 onCreateOptionsMenu()에 로그 문을 두었습니다. 내가 메뉴 버튼을 눌렀을 때 Lo-and-beold라고 불리지 않았다. 마지막으로 내 main.xml에 들어가서 레이아웃에서 myWebView에 대한 태그를 삭제했습니다. 그런 다음 앱이 실행되고 메뉴가 작동했습니다.

그래서 내 맞춤 웹보기를 사용하면 메뉴가 작동하지 않습니다. 다른 사람이이 문제를 겪었습니까? 사용자 정의 UI 요소로 옵션 메뉴를 사용할 수 없다는 것을 믿기 어렵 기 때문에 몇 가지 해결 방법이 있어야합니다. 반대로, 누구나 사용자 정의 webview를 작성하고 옵션 메뉴를 성공적으로 구현 했으므로 코드를 다시 검토해야합니다. 누구든지 도움이된다고 생각하면 코드를 올리 겠지만, 모든 것이 올바르게 코딩되었고 모범 사례에 따라 99.99 %의 긍정적 인 결과를 얻었으며 확장 클래스의 코드는 방대하고 많은 양의 문질러 써야 할 것입니다. 내가 여기서 말한 것을 바탕으로 누구에게 아이디어가 있습니까?

답변

-1

나는 실제로 그것을 알아 냈다. 나는 키패드 이벤트를 오버라이드하여 아무 일도하지 않으며 그것이 발생하지 못하도록 막는다. 외관상으로는 사람들이 만드는 아주 일반적인 실수이다. 나는 Google에 대한 검색 용어의 마술 적 조합을 전에 치지 않았 음에 틀림 없다. 도움을 주셔서 감사합니다. 내 실수가 안드로이드 여행에서 당신을 도울 수 있기를 바랍니다.

+0

그리고 해결책은 무엇입니까? – TheRealChx101

+0

내가 말했듯이, 나는 메뉴 버튼 클릭이 등록되는 것을 막는 키패드 이벤트를 무시하고 있었다. 내가 사용했던 코드와 아무 관련이 없습니다.그래도 아래 표를 가져 주셔서 감사합니다. – aamiri

0

이상한. 내가 webview 및 옵션 메뉴를 사용하여 잘 작동합니다.

나는 WebView를 확장하지 않습니다 ... 나는 활동을 확장 한 다음 XML로 웹보기를 구성하거나 웹보기를 "컨텐츠보기"에 추가합니다.

모든 웹 설정을 수행하고 내 자신의 chromeclient 및 viewclient를 추가하여 webview의 기능을 변경하십시오.

방금 ​​프로그래밍 방식으로 메뉴를 추가하여 XML 설명자를 사용하도록 전환했습니다. 그래서 나는 그것이 여전히 작동한다는 것을 안다. 당신이 웹보기를 확장하여 이유와 몇 가지 코드를 게시 할 필요가 잘하면 내가 도울 수 있다면

나는 SDK 7 (2.1.x의)

을 사용하고 있습니다.

+0

나는 실제로 그것을 알아 냈습니다. 나는 키패드 이벤트를 오버라이드하여 아무 일도하지 않으며 그것이 발생하지 못하도록 막는다. 외관상으로는 사람들이 만드는 아주 일반적인 실수이다. 나는 Google에 대한 검색 용어의 마술 적 조합을 전에 치지 않았 음에 틀림 없다. 도움을 주셔서 감사합니다. 내 실수가 안드로이드 여행에서 당신을 도울 수 있기를 바랍니다. – aamiri

관련 문제