当我的活动没有从数据库中获取数据时,我会显示一条Toast消息,说明这一点。然后我充电前一个活动,但这个充电非常快,Toast消息仍然存在几秒钟。我想要这个消息持续时间,但我不知道如何延迟我希望在消息之后启动的活动的初始化。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aeiou);
...
if(!oArrayList.isEmpty()){
...
}else{
Toast.makeText(this.getApplicationContext(), "NO hay datos", Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, PreviousActivity.class);
startActivity(intent);
}
}
答案 0 :(得分:5)
在“else”中,我添加了一个在Toast消息显示时休眠的线程,并在启动下一个Activity之后。
...}else{
Toast.makeText(this.getApplicationContext(), "NO hay datos", Toast.LENGTH_LONG).show();
final Intent intent = new Intent(this, OtherActivity.class);
Thread thread = new Thread(){
@Override
public void run() {
try {
Thread.sleep(3500); // As I am using LENGTH_LONG in Toast
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
};
thread.start();
}
答案 1 :(得分:2)
据我所知,toast的持续时间只能设置为两个值之一(long和short),两者都可以由用户定义。
为了设定自己的时间并在结束时收到通知,您需要创建自己的机制而不是内置的吐司......
尝试使用对话框(可能是progressDialog)或创建一个将位于所有其他视图之上的视图。
答案 2 :(得分:2)
Toast.makeText(this, "your message", Toast.LENGTH_LONG).show();
(new Handler())
.postDelayed(
new Runnable() {
public void run() {
// launch your activity here
}
}, timeInMillisecondTheToastIsShowingFor);
这会延迟启动活动,无论你想要多长时间