2011-12-30 2 views
0

Я пытаюсь сделать webview в качестве диалога в приложении для Android и закрыть его, когда загружаю необходимую веб-страницу. диалог открывается при нажатии кнопки в действии, а при закрытии диалогового окна сразу после открытия (в действии) это работает, но в моем WebViewClient он всегда сбой. Диалог создания:Как отклонить диалог, содержащий WebView, из класса WebView

@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
 Activity myActivity = new Activity(); 
    myActivity.dismissDialog(); 

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

Смежные вопросы