Android内部吐司不工作?

时间:2013-02-23 11:42:05

标签: android toast

吐司不在课堂内工作,

这是我的代码:

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()

我需要在课堂上做任何办法。

感谢。

3 个答案:

答案 0 :(得分:6)

问题是你必须在主线程上显示你的Toast。在任何其他线程中不允许Toast.makeText(...)

如果您只想延迟Toast,请使用Handler,否则您可以使用任何View个实例来postDelay(Runnable, long)您的Toast。

在您的情况下,您有Activity个实例,因此您可以将其称为runOnUiThread(Runnable)方法。

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

答案 1 :(得分:2)

尝试:

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

答案 2 :(得分:1)

使用

ClassName.this代替活动