У меня есть приложение, в котором при щелчке по элементу в списке отображается веб-просмотр с введенным javascript. Мне нужно сохранить объект веб-просмотра, чтобы при повторном нажатии на тот же элемент существующий веб-просмотр показывался вместо перезагрузки и добавленияСнова javascript. Я могу сохранить объект webview в Arraylist webview внутри класса приложения.
Я проверяю, существует ли элемент в Arraylist, и если он существует, возьму соответствующий объект и задаю объект каксодержание деятельности, как показано ниже.
temp_WebView=new WebView(this);
temp_WebView=(WebView)application.getWebview(j);
ViewGroup parent = (ViewGroup) application.getWebview(j).getParent();
parent.removeView(application.getWebview(j));
setContentView(temp_WebView);
This works fine but when clicking on any of the select box inside the webview where a dialog is populated it gets crashed with the following error,
WARN/WindowManager(60): Attempted to add application window with unknown token HistoryRecord{4506d1e8 tabviewapp.com/.Webresults}. Aborting.
DEBUG/AndroidRuntime(500): Shutting down VM
WARN/dalvikvm(500): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
ERROR/AndroidRuntime(500): FATAL EXCEPTION: main
ERROR/AndroidRuntime(500): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45034510 is not valid; is your activity running?
ERROR/AndroidRuntime(500): at android.view.ViewRoot.setView(ViewRoot.java:505)
ERROR/AndroidRuntime(500): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
ERROR/AndroidRuntime(500): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
ERROR/AndroidRuntime(500): at android.view.Window$LocalWindowManager.addView(Window.java:424)
ERROR/AndroidRuntime(500): at android.app.Dialog.show(Dialog.java:241)
ERROR/AndroidRuntime(500): at android.webkit.WebView$InvokeListBox.run(WebView.java:7095)
ERROR/AndroidRuntime(500): at android.os.Handler.handleCallback(Handler.java:587)
ERROR/AndroidRuntime(500): at android.os.Handler.dispatchMessage(Handler.java:92)
ERROR/AndroidRuntime(500): at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(500): at android.app.ActivityThread.main(ActivityThread.java:4627)
ERROR/AndroidRuntime(500): at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(500): at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(500): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
ERROR/AndroidRuntime(500): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
ERROR/AndroidRuntime(500): at dalvik.system.NativeStart.main(Native Method)
WARN/ActivityManager(60): Force finishing activity tabviewapp.com/.Webresults
Я думаю, что проблема в контексте веб-просмотра, но не в состоянии выяснить, как установить контекст для существующего объекта или передать контекст в диалог, созданный внутри веб-обзора.
Заранее спасибо.