吐司不在课堂内工作,
这是我的代码:
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()
我需要在课堂上做任何办法。
感谢。
答案 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
代替活动