Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中单击ListView时在AlertDialog中打开WebView时出错_Android_Listview_Dialog - Fatal编程技术网

在Android中单击ListView时在AlertDialog中打开WebView时出错

在Android中单击ListView时在AlertDialog中打开WebView时出错,android,listview,dialog,Android,Listview,Dialog,单击ListView,我试图在AlertDialog中打开WebView,但出现以下错误。有人能提出一些建议吗 07-29 21:13:10.695: E/AndroidRuntime(25334): FATAL EXCEPTION: main 07-29 21:13:10.695: E/AndroidRuntime(25334): android.view.WindowManager$BadTokenException: Unable to add window -- token androi

单击ListView,我试图在AlertDialog中打开WebView,但出现以下错误。有人能提出一些建议吗

07-29 21:13:10.695: E/AndroidRuntime(25334): FATAL EXCEPTION: main
07-29 21:13:10.695: E/AndroidRuntime(25334): android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@4256dc40 is not valid; is your activity running?
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.view.ViewRootImpl.setView(ViewRootImpl.java:708)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:346)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.view.Window$LocalWindowManager.addView(Window.java:554)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.app.Dialog.show(Dialog.java:277)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.app.AlertDialog$Builder.show(AlertDialog.java:932)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at com.itcuties.multicategoryrssreader.BlogFeeds$RssFeedTask$1.onItemClick(BlogFeeds.java:110)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.widget.AdapterView.performItemClick(AdapterView.java:298)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.widget.AbsListView.performItemClick(AbsListView.java:1283)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3074)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.widget.AbsListView$1.run(AbsListView.java:4147)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.os.Handler.handleCallback(Handler.java:615)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.os.Looper.loop(Looper.java:137)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at android.app.ActivityThread.main(ActivityThread.java:4898)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at java.lang.reflect.Method.invokeNative(Native Method)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at java.lang.reflect.Method.invoke(Method.java:511)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
07-29 21:13:10.695: E/AndroidRuntime(25334):    at dalvik.system.NativeStart.main(Native Method)
下面是我的代码:

_rssFeedListView
                    .setOnItemClickListener(new OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> parent,
                                View view, int position, long id) {

                            AlertDialog.Builder alert = new AlertDialog.Builder(BlogFeeds.this);

                            alert.setTitle("Title here");
                            WebView wv = new WebView(BlogFeeds.this);

                            wv.loadUrl(rssStr.get(position).getEncodedContent());


                            wv.setWebViewClient(new WebViewClient() {
                                @Override
                                public boolean shouldOverrideUrlLoading(
                                        WebView view, String url) {
                                    view.loadUrl(url);

                                    return true;
                                }
                            });

                            alert.setView(wv);
                            alert.setNegativeButton("Close",
                                    new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(
                                                DialogInterface dialog,
                                                int id) {
                                        }
                                    });
                            alert.show();

                        }
                    });
\u rssFeedListView
.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共无效MClick(AdapterView父级、,
视图、整型位置、长id){
AlertDialog.Builder alert=新建AlertDialog.Builder(BlogFeeds.this);
alert.setTitle(“此处标题”);
WebView wv=新的WebView(BlogFeeds.this);
loadUrl(rssStr.get(position.getEncodedContent());
wv.setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值应该重写(
WebView视图,字符串url){
view.loadUrl(url);
返回true;
}
});
警报。设置视图(wv);
alert.setNegativeButton(“关闭”,
新建DialogInterface.OnClickListener(){
@凌驾
公共空间点击(
对话框接口对话框,
int id){
}
});
alert.show();
}
});

以下可能是错误的原因:

  • 在附加父项后,应调用webView.loadUrl()
  • 您应该展开布局,并将webview添加到布局中
  • 您应该使用
    alert.setContentView()
    而不是
    alert.setView()
  • 1.loadUrl(rssStr.get(position.getEncodedContent());应在添加到父视图后调用。2.应使用alert.setContentView()而不是alert.setView();