我有一个附加到按钮的函数,当按下该按钮时,会从数组列表中删除一个项目,然后显示一个提示“项目已删除!”。如果我多次按下删除按钮,那么所有的吐司都会显示出来,使其看起来像一个非常长的吐司显示。我想每次在显示新的 toast 之前取消 toast。我是这样展示我的吐司的
public void removeItem(View view)
{
Toast.makeText(getApplicationContext(),"Text",toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
现在我试图制作一个 toast 对象,取消它,设置文本,然后每次按下按钮时显示它。这样之前的toast就被取消了。不确定这是否是正确的方法。
public void removeItem(View view)
{
Toast toast = Toast.makeText(this,"",Toast.LENGTH_SHORT);
toast.cancel();
toast.setText("Text");
toast.show();
}
Run Code Online (Sandbox Code Playgroud)
这最终什么也没显示。有什么帮助吗?
您给定的示例不起作用,因为您正在调用cancel()
新创建的Toast
对象实例。您必须以Toast
某种方式保留对当前显示的引用,并在再次显示之前取消它。
Toast mMyToast // declared within the activity class
public void removeItem(View view)
{
if(mMyToast!=null) mMyToast.cancel() // Avoid null pointer exceptions!
mMyToast = Toast.makeText(this,"Text",Toast.LENGTH_SHORT);
mMyToast.show();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
508 次 |
最近记录: |