2011-05-18 29 views
0

我正在尋找一種顯示對話框的方式,無論顯示何種活動。如何從應用程序實例中觸發對話框?

我想什麼,我想要實現更好的使用一些代碼解釋:

public class MyApp extends Application { 

     public MyApplication() { 
     } 

     @Override 
     public void onCreate() { 
       super.onCreate(); 

       boolean success = doSomeWebServiceCall(); 

       if (!success) 
         showAlertDialog(); // fails with error 
     } 
} 

我得到的錯誤是:

ERROR/AndroidRuntime(375): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
at android.view.ViewRoot.setView(ViewRoot.java:460) 

回答

2

只有一個Activity可以顯示Dialog。考慮使用對話主題Activity來代替,它可以通過startActivity()Application對象啓動。

+0

謝謝,我會試一試! – David 2011-05-18 05:02:07

+0

你給startActivity的背景是什麼? – David 2011-05-18 17:57:35

+0

@David:'Application'是一個'Context'。 – CommonsWare 2011-05-18 17:58:18

2

我想敬酒(甚至可以扔在如果您不需要用戶交互,則更方便

Toast toast = Toast.makeText(getApplicationContext(), "YOUR TEXT HERE", Toast.LENGTH_LONG); 
LinearLayout toastView = (LinearLayout) toast.getView(); 
ImageView infoImage = new ImageView(getApplicationContext()); 
infoImage.setImageResource(drawable.your_image); 
toastView.addView(infoImage, 0); 
toast.show(); 
+0

這很有趣,看到你可以用烤麪包做到這一點!但我想確保用戶看到對話/祝酒。有沒有辦法阻止吐司自動消失? – David 2011-05-18 05:07:08

+0

@David:不,對不起,「Toast」必須自動消失,因爲它通常不會響應用戶輸入。 – CommonsWare 2011-05-18 10:53:57

相關問題