对不起,我的英语不好。
我想按顺序显示两个吐司,换句话说,当第一个吐司持续时间结束时,第二个吐司出现。
这是我的代码:
Toast.makeText(this, "Toast1", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Toast2", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
但只会出现第二个 toast 消息。我认为当第二个 toast 的 show 方法将执行时,它将取消前一个 toast(第一个 toast)
我用这段代码解决了我的问题:
Toast.makeText(this, "Toast1", Toast.LENGTH_SHORT).show();
Handler handler =new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
Toast.makeText(MainActivity.this, "Toast2", Toast.LENGTH_SHORT).show();
}
},1000);
Run Code Online (Sandbox Code Playgroud)
但有没有更简单的解决方案?
但只会出现第二条 toast 消息。我认为当第二个吐司的显示方法执行时它将取消之前的吐司(第一个吐司)
当你调用show方法时,它会放入UI线程的消息队列中,并且Toast将按顺序显示。但是你同时放两个Toast,后者会和前者重叠。
我想按顺序显示两个吐司,换句话说,当第一个吐司持续时间超过第二个吐司时出现。
private static final int LONG_DELAY = 3500; // 3.5 seconds
private static final int SHORT_DELAY = 2000; // 2 seconds
Run Code Online (Sandbox Code Playgroud)
要使第二个 Toast 在第一个 Toast 持续时间结束后显示,请将代码更改为
Toast.makeText(this, "Toast1", Toast.LENGTH_SHORT).show();
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
Toast.makeText(MainActivity.this, "Toast2", Toast.LENGTH_SHORT).show();
}
}, 2000);
Run Code Online (Sandbox Code Playgroud)
但有没有更简单的解决方案呢?
使用 Handler 是完成您的任务的简单解决方案。