如何从WebView类中关闭包含WebView的对话框

时间:2011-12-30 22:14:13

标签: android dialog webview

我正在尝试将webview作为我的Android应用程序中的对话框,并在我加载所需的网页时将其关闭。按钮单击活动时对话框打开,如果在打开后(活动中)关闭对话框,则它可以正常工作,但在我的WebViewClient中它总是崩溃。对话框创建:

@Override
    protected Dialog onCreateDialog(int id) {
         switch (id) {
         case 1:
             dialog = new Dialog(this);
             dialog.setContentView(R.layout.webviewl);
             dialog.setCanceledOnTouchOutside(false);
             webview = (WebView) dialog.findViewById(R.id.vkWebView);
             webview.setWebViewClient(wvClforVK);
             webview.loadUrl(url);
         webview.requestFocus(View.FOCUS_DOWN);
         return dialog;
         default:
         return super.onCreateDialog(id);
            }
    }   
    public void showVKDialog(){
         dialog = new Dialog(this);
         dialog.setContentView(R.layout.webviewl);
         dialog.setCanceledOnTouchOutside(false);
         webview = (WebView) dialog.findViewById(R.id.vkWebView);
         webview.setWebViewClient(wvClforVK);
         webview.loadUrl(url);
         dialog.show();
    }
public void dismissDialog(){
        dialog.dismiss();
    }

按下按钮

showDialog(1);
WebViewClass中的

//code
    @Override
            public void onPageFinished (WebView webview, String url){
        //lalala some kind of my perfect code.... :)

 Activity myActivity = new Activity();
             myActivity.dismissDialog();

网络视图布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/vkWebView" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

     Activity myActivity = new Activity();
     myActivity.dismissDialog();

你不能简单地实例化一个新的Activity并调用dissmissDialog();在上面。您必须在用于打开对话框的Activity实例上调用它。所以我猜你必须将Activity传递给你的WebView类并在其上调用dissmissDialog()。