Как отклонить Spinner's Dialog, запускаемый Spinner, внутри WebView? - PullRequest
0 голосов
/ 18 января 2012

Я разрабатываю приложение, которое содержит WebView. Для некоторых указанных URL веб-страница может содержать некоторые виджеты счетчика для выбора языка, даты и т. Д.

Как только я нажимаю Spinner, он похож на Android Spinner, так что всплывающее окно Dialog позволяет пользователю выбирать элементы.

Однако Dialog не удаляется, даже если WebView уничтожен. После уничтожения WebView происходит сбой программы, либо я нажимаю кнопку BACK, чтобы закрыть диалоговое окно, либо щелкаю один из его элементов.

Можно ли отклонить этот Dialog из хост-приложения или можно заставить этот объект диалога что-либо делать с ним?

Вот журнал, когда я отменяю Dialog:

E/AndroidRuntime( 7211): FATAL EXCEPTION: main
E/AndroidRuntime( 7211): java.lang.NullPointerException
E/AndroidRuntime( 7211):    at android.webkit.WebView$InvokeListBox$4.onCancel(WebView.java:7134)
E/AndroidRuntime( 7211):    at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1060)
E/AndroidRuntime( 7211):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 7211):    at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 7211):    at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 7211):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 7211):    at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 7211):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 7211):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 7211):    at dalvik.system.NativeStart.main(Native Method)

Обновление: я обнаружил, что Dialog - это поле mListBoxDialog в WebView. Dialog отклоняется в destroy() методе WebView, но я не знаю, почему он не ведет себя таким образом.

...