我这里有一些代码(我的 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/