我正在尝试将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>
答案 0 :(得分:0)
Activity myActivity = new Activity();
myActivity.dismissDialog();
你不能简单地实例化一个新的Activity并调用dissmissDialog();在上面。您必须在用于打开对话框的Activity实例上调用它。所以我猜你必须将Activity传递给你的WebView类并在其上调用dissmissDialog()。