2013-02-23 46 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,而不是活性