2013-09-29 3 views
0
error java.lang.RuntimeException: Can't create handler inside 
thread that has not called Looper.prepare() =(

Если я позвоню showDialog (id) в GameActivity - работает Но если я называю activity.showDialog из другого класса - ошибкаAndEngine alertdialog ошибка

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case 1: 
     Log.d("Dialog", "Dialog 1"); 
     AlertDialog.Builder alert = new AlertDialog.Builder(this); 
     alert.setTitle("Help"); 
     alert.setMessage("Help"); 
     WebView wv = new WebView(this); 
     wv.loadUrl("http:\\www.google.com"); 
     wv.setWebViewClient(new WebViewClient() 
     { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       view.loadUrl(url); 
       return true; 
      } 
     }); 
     alert.setView(wv); 

     AlertDialog ALERT = alert.create(); 
     return ALERT; 
    default: 
     return null; 
    } 
} 

Я хочу, чтобы вызвать диалоговое окно с любым другим классом

ОБНОВЛЕНИЕ:

new code activiti.runOnUiUpdate() 

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case 1: 
     this.runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 

     Log.d("Dialog", "Dialog 1"); 
     AlertDialog.Builder alert = new AlertDialog.Builder(this); 
     alert.setTitle("Help"); 
     alert.setMessage("Help"); 
     WebView wv = new WebView(this); 
     wv.loadUrl("http:\\www.google.com"); 
     wv.setWebViewClient(new WebViewClient() 
     { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       view.loadUrl(url); 
       return true; 
      } 
     }); 
     alert.setView(wv); 
     AlertDialog aALERT = alert.create(); 

     } 
     }); 
     return ALERT; 
    default: 
     return null; 
    } 
} 
+0

сделать ваш диалог в 'activity.runOnUiThread (...)' метод – kabuto178

+0

ошибка - Конструктор AlertDialog.Builder (новый Runnable() {}) не определен – user2828109

+0

Конструктор WebView (новый Runnable() {}) является undefined – user2828109

ответ

1

Сделайте лет Диалог Ур в методе обновления резьбы, пример

activity.runOnUiThread(new Runnable(){ 
    @Override 
     public void run() { 
    //code for dialog creation goes here 
    } 

}); 

обновление любых внутренние ссылки от this к деятельности контексту activity также можно просто dialog.show() в конце его создания и сделать его показать после его создания. Надеюсь, я помог.

+0

большое спасибо, работает – user2828109

+0

ваш прием, получайте удовольствие от создания :) – kabuto178

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