首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何取消吐司

如何取消吐司
EN

Stack Overflow用户
提问于 2010-12-09 13:11:24
回答 8查看 28.2K关注 0票数 26

我开发了一个安卓应用程序,但我正面临着Toast的问题。假设我正在显示Toast,它显示在应用程序窗口上。当对话框出现时,吐司不会立即消失。

我想知道怎样才能取消吐司。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-12-09 13:17:21

Toast.makeText返回一个Toast对象。在此对象上调用cancel()以取消它。

票数 45
EN

Stack Overflow用户

发布于 2012-03-15 17:15:51

您可以为toast指定的最短持续时间是Toast.LENGTH_SHORT,它的值是0,但实际上是2000 milliseconds long。如果你想让它更短,那么试试这个:

代码语言:javascript
运行
复制
    final Toast toast = Toast.makeText(ctx, "This message will disappear in 1 second", Toast.LENGTH_SHORT);
    toast.show();

    Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
           @Override
           public void run() {
               toast.cancel(); 
           }
    }, 1000); //specify delay here that is shorter than Toast.LENGTH_SHORT
票数 8
EN

Stack Overflow用户

发布于 2013-07-19 15:37:53

我认为没有必要创建一个自定义的吐司。

仅创建Toast类的单个实例。我们只需使用toast.setText("string")设置toast的文本,并在onDestroy()方法中调用toast.cancel()方法。

工作代码片段如下:

代码语言:javascript
运行
复制
package co.toast;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class ShowToastActivity extends Activity {
    private Toast toast = null;
    Button btnShowToast;

    @SuppressLint("ShowToast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // creates only one toast object..
        toast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG);

        btnShowToast = (Button) findViewById(R.id.btnShowToast);

        btnShowToast.setOnClickListener(new OnClickListener() {

             @Override
             public void onClick(View v) {

                // only set text to toast object..
                toast.setText("My toast!");
                toast.show();
            }
        });
    }

    @Override
    protected void onDestroy() 
    {
        toast.cancel();
        super.onDestroy();
    }

    @Override
    protected void onStop () {
        super.onStop();
        toast.cancel();
    }
}

希望这对你有帮助..

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4395062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档