android - 无法关闭我的 Android 应用程序中的对话框

标签 android dialog webview dismiss

我这里有一些代码(我的 Activity 类和一些扩展 WebViewClient 的类) 所以,在我的 Activity 中我做了这样的事情:

protected Dialog onCreateDialog(int id) {
    switch(id) {
        case 1:
            //logging vk dialog
            Log.d("OLOLOLO", "webview"); 
            dialog = new Dialog(this);
            dialog.setContentView(R.layout.webviewl);
            dialog.setTitle("loggin in");

            webview = (WebView) dialog.findViewById(R.id.vkWebView);
            webview.setWebViewClient(wvClforVK);  
            webview.loadUrl(url);
            // do the work to define the pause Dialog 
            break;
        case 2:
            // already logged vk dialog
            break;
        default:
            dialog = null;
    }
    return dialog;
}

然后在某个 buttonclick 监听器上调用 showDialog(1)

在我的 webview 类中的 onPageFinished() 方法中,我需要关闭对话框,但我认为这样做是不正确的:

MyActivity activity = new MyActivity();  //my main activity object
activity.dismissDialog(1);

它不起作用:

01-03 20:41:10.758: E/AndroidRuntime(1172): java.lang.IllegalArgumentException: no dialog with id 1 was ever shown via Activity#showDialog

如何让我的 Activity 对象正确关闭对话框?

最佳答案

问题是您实例化了一个没有任何对话框的新 Activity 。您必须在创建对话框的同一 Activity 实例上调用missDialog 方法。如果您在另一个类中调用它,则必须以某种方式将您的 Activity 传递给该类(例如,您可以将其作为参数传递)。无论如何,不​​建议以这种方式实例化 Activity ,如果您在项目的 list 文件中定义了它们,它们会自动实例化。

关于android - 无法关闭我的 Android 应用程序中的对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718619/

相关文章:

android - 针对 Android Proguard 混淆的 ANT 构建

android - 谷歌云消息,无法初始化接收器

Java 将一个对话框停靠在另一个对话框上

android - Cordova 插件对话框确认不会将响应发送到在 android 中调用的函数,但它会在 web 上发送

android - 将 webview 转换为位图

java - 如何使用 onCreate 方法在 MainActivity 中打开 fragment

android - 无法在 android 中获取广告 ID

android - 在显示对话框时,我得到 "Can not perform this action after onSaveInstanceState"

java - Android 如果我使用 WebView.destroy() 可以稍后恢复吗?

facebook - 检测 Facebook Messenger 中的 webview 支持