2013-02-23 44 views
0

敬酒不類裏面工作,Android課堂敬酒不工作?

這裏是我的代碼:

public class ToastClass { 

public ToastClass (Context activity){ 
     callToast(activity); 
    } 
    public void callToast(Context activity){ 
      Toast.makeText(activity, "success", Toast.LENGTH_SHORT).show(); 
    } 
} 

錯誤我得到這個,

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 

我需要內部類做的是有沒有辦法做到。

謝謝。

回答

6

問題是你必須在主線程上+顯示你的Toast。在任何其他線程中不允許Toast.makeText(...)

如果您只想延遲您的吐司,請使用Handler,否則您可能會使用任何View實例到postDelay(Runnable, long)您的吐司。

在你的情況下,你有一個Activity實例,所以你可以稱它爲runOnUiThread(Runnable)方法。

activity.runOnUiThread(new Runnable() { 
    @Override 
    public void run() { 
     Toast.makeText(activity, "success", Toast.LENGTH_SHORT).show(); 
    } 
}); 
2

嘗試:

activity.runOnUiThread(
new Runnable(){ 
    @Override 
    public void run(){ 
    Toast.makeText(activity, "success", Toast.LENGTH_SHORT).show(); 
    } 
); 
1

使用

ClassName.this,而不是活性