我想在UiThread上运行的线程中显示Toast消息,但是在我的调用中看起来没有正确引用Runnable。请参阅下面我的基本实现:
this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(this, "Authenticated.", Toast.LENGTH_SHORT).show();
}
}
);
我认为这个不是 makeText 功能所需的实际可运行性。在这种情况下,你如何获得实际的Runnable?
答案 0 :(得分:3)
不要使用this
关键字,最佳做法是创建Context变量并在onCreate
方法中初始化它,并使用活动中的每个位置。
Context context;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutname);
context=this;
}
现在像这样使用它:
this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(context, "Authenticated.", Toast.LENGTH_SHORT).show();
}
}
);
在您的情况下,这是指 runnable 类而不是Context。因此,您可以context
使用toast
答案 1 :(得分:2)
使用此
this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(youractivityname.this, "Authenticated.", Toast.LENGTH_SHORT).show();
}
}
);
this
指的是runnable类而不是context
。所以你可以使用activityname.this