2012-09-13 39 views
0

是否可以在處理程序中調用Toast?如果是這樣,怎麼樣?我當前的代碼正在生成NullPointer異常。在Handler消息中聲明Toast

這裏是我的代碼:

Handler messageHandler = new Handler() { 

    public void handleMessage(Message msg) { 
     super.handleMessage(msg); 
     Toast toast=Toast.makeText(getApplicationContext(),"THIS IS TOAST DIALOG",Toast.LENGTH_LONG); 
     toast.show(); 
     prgBar.setVisibility(prgBar.INVISIBLE); 
     } 
}; 

我的日誌報告:

09-13 18:18:51.493: E/AndroidRuntime(1727): FATAL EXCEPTION: main 

09-13 18:18:51.493: E/AndroidRuntime(1727): java.lang.NullPointerException 

09-13 18:18:51.493: E/AndroidRuntime(1727): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:100) 

09-13 18:18:51.493: E/AndroidRuntime(1727): at com.example.threadingexperiment.ThreadingExperiment$1.handleMessage(ThreadingExperiment.java:46) 

示值誤差AT LINE:

Toast toast=Toast.makeText(getApplicationContext(),"THIS IS TOAST DIALOG",Toast.LENGTH_LONG); 
+0

您在哪裏初始化了prgBar。 – sankar

+0

你在哪一行發生異常? –

+0

顯示您的日誌信息 – koti

回答

0

我想你不能達到的ApplicationContext您處理程序。

您應該使用此處理程序所在的活動的上下文。

+0

我用這個替換了我的代碼:Toast toast = Toast.makeText(ThreadingExperiment.this,「This is TOAST DIALOG」,Toast.LENGTH_LONG); - 仍然有錯誤 –

+0

ThreadingExperiment是什麼類? – Klaasvaak

+0

ThreadingExperiment基本上是我的主要活動。這個類調用另一個執行冗長動作的線程類。完成此動作後,messageHandler.sendEmptyMessage(0);叫做。得到它了?? –