如何在Android上以不同的方法取消Toast?

我有以下代码
private Toast movieRecordToast;

    private void displayNextMovie() {
        if (movieRecordToast != null) movieRecordToast.cancel(); // cancel prevIoUs Toast (if user changes movies too often)
        movieRecordToast = Toast.makeText(getApplicationContext(),"Next",Toast.LENGTH_SHORT);
        movieRecordToast.show();

    private void displayPrevMovie() {
        if (movieRecordToast != null) movieRecordToast.cancel();
        movieRecordToast = Toast.makeText(getApplicationContext(),"Prev",Toast.LENGTH_SHORT);
        movieRecordToast.show();

但是如果displayNextMovie被快速调用几次,然后显示displayPrevMovie,“Next”Toast仍然显示,只有在显示“Prev”之后.
看起来取消不正常.

解决方法

每次您想要显示一个新的文本时,您可以轻松地只保留一个Toast对象,而不需要创建一个新的Toast对象,并取消当前的Toast.在显示一个Toast之前,您可以使用Toast.setText()函数更改文本.

示例代码

private Toast mToastText;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Create the object once.
    mToastText = Toast.makeText(this,"",Toast.LENGTH_SHORT);
}

private void displayText(final String message) {
    mToastText.cancel();
    mToastText.setText(message); 
    mToastText.show();
}

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...