Android: проблема с пользовательским веб-обзором и меню настроек - PullRequest
0 голосов
/ 23 марта 2011

Я потратил недели на разработку пользовательского веб-просмотра для приложения, которое я создаю.У меня есть класс (назовем его myWebView), который расширяет Android WebView.Я объявил myWebView в моем main.xml, так же, как вы примете любые другие элементы пользовательского интерфейса, я добавил в myWebView имя пакета.Все работало хорошо и прекрасно.

После нескольких недель работы со всеми функциями моего расширенного класса пришло время реализовать меню опций.По сравнению с тем, что я делал, я думал, что это будет относительно простой задачей.Я переписал onCreateOptionsMenu () и попытался раздуть мое меню из XML-файла.Когда я запустил свое приложение в эмуляторе и нажал кнопку меню, ничего не произошло.Мой код для onCreateOptionsMenu () не был ошибочным.Я попробовал это в манекене, в котором был простой файл main.xml, который содержал только регулярное веб-просмотрМеню работало в манекене.Затем я попробовал различные другие способы заполнения меню (используя различные реализации menu.add ()), и все они работали с моей фиктивной деятельностью, но не работали в моем реальном приложении.Я удалил все из своей деятельности, кроме того, что было в onCreate и onCreateOptionsMenu, чтобы посмотреть, не мешает ли что-нибудь из моих других методов созданию меню.Это также ничего не достигло.Я поместил оператор log в onCreateOptionsMenu (), чтобы увидеть, вызывается ли метод.Черт возьми, это не было вызвано, когда я нажал кнопку меню.Наконец, я вошел в свой main.xml и удалил тег для myWebView из макета.После этого приложение запустилось, и меню заработало.

Так что по какой-то причине использование моего пользовательского веб-представления препятствует работе меню.Кто-нибудь еще сталкивался с этой проблемой?Мне трудно поверить, что вы не можете использовать меню опций с пользовательскими элементами пользовательского интерфейса, поэтому нужно немного поработать.И наоборот, кто-нибудь создал пользовательское веб-представление и успешно реализовал меню опций, что означало бы, что мне нужно пойти и пересмотреть свой код.Я запишу свой код, если кто-то посчитает, что это поможет, но я на 99,99% уверен, что все написано правильно и в соответствии с лучшими практиками, а код для моего расширенного класса огромен и потребует большой очистки.Исходя из того, что я здесь сказал, у кого-нибудь есть идеи?

Ответы [ 2 ]

0 голосов
/ 15 августа 2011

Я только что понял это на самом деле. Я перезаписываю события клавиатуры, чтобы ничего не делать, и именно это предотвращает их возникновение. видимо, это довольно распространенная ошибка, которую делают люди. Я, должно быть, просто не ударил эту волшебную комбинацию поисковых запросов для Google раньше. спасибо за ваше предложение помощи, хотя. Я надеюсь, что моя ошибка поможет вам в путешествиях на Android

0 голосов
/ 23 марта 2011

Странно.Я использую webview и меню опций, работает отлично.

Я не расширяю WebView ... Я расширяю активность, затем настраиваю webview в XML или добавляю webview в «представление контента».

Выполните все настройки сети и добавьте свой собственный chromeclient и viewclient для изменения функциональности веб-просмотра.

Я только что переключился с программного добавления меню на использование XML-дескриптора.Так что я знаю, что это все еще работает.

Я использую SDK 7 (2.1.x)

Если вам нужно расширить веб-просмотр, опубликуйте свои причины и некоторый код и, надеюсь, я смогу помочь.

...