Как закрыть диалоговое окно, содержащее WebView, из класса WebView - PullRequest
0 голосов
/ 31 декабря 2011

Я пытаюсь сделать веб-просмотр в виде диалога в моем приложении для 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 голосов
/ 31 декабря 2011
     Activity myActivity = new Activity();
     myActivity.dismissDialog();

Вы не можете просто создать новую активность и вызвать dismissDialog ();в теме.Вы должны вызвать его в экземпляре Activity, из которого вы открывали диалоговое окно.Поэтому, я думаю, вам нужно передать Activity в ваш класс WebView и вызвать для него dismissDialog ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...