Toast使用大全

本文详细介绍了Android中Toast的使用,包括显示时间常量、API、如何创建及显示Toast,以及如何自定义位置、添加图片和在不同线程中使用。提供了多种示例,帮助开发者更好地理解和应用Toast。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述

介绍

官方文档上是这么介绍的,Toast是一种简易的消息提示框,该提示框不能被用户点击,且永远不会获得焦点。同时,Toast显示的时间有限,过一定的时间就会自动消失,具体时间限制由用户设定。

常用API

显示时间常量

LENGTH_LONG:指定显示时间为长时间(默认5000毫米)

LENGTH_SHORT:指定显示时间为短时间(默认1000毫米)

API

  • cancel():
    如果Toast在显示,则取消显示;如果Toast未显示,此Toast不再显示,即使调用show()方法。

  • makeText(Context context, int resId, int duration):静态方法创建Toast对象

  • makeText(Context context, CharSequence text, int duration):静态方法创建Toast对象

  • setDuration(int duration):设置Toast显示时间

  • setGravity(int gravity, int xOffset, int yOffset):设置Toast显示的位置

  • setMargin(float horizontalMargin, float verticalMargin):设置Toast中View的间距

  • setText(int resId):设置显示的内容,其中resId为Resouce那条数据的索引

  • setText(CharSequence s):设置显示的内容,其中s即为显示的内容

  • show():显示Toast

创建Toast

构造方法

Toat toast = new Toast(context);
View toastView = LayoutInflater.from(this).inflate(R.layout.layout_image, null, false);
toast.setView(toastView);
toast.show();

注:使用构造方法创建Toast对象时,默认并未创建toast显示信息的view。若不调用setView()设置显示信息的View,会报异常 - java.lang.RuntimeException: setView must have been called。若采用构造方法创建Toast对象,在调用show()方法前,应先调用setView()设置显示的View.

makeText(Context context, int resId, int duration)

context:是toast显示在哪个上下文,通常是当前Activity;

resId:显示内容引用Resouce那条数据,就是从R类中去指定显示的消息内容;

duration:指定显示时间,Toast默认有LENGTH_SHORT和LENGTH_LONG两常量,分别表示短时间显示和长时间显示。

makeText(Context context, CharSequence text, int duration)

text:显示的内容

Toast示例

默认Toast

这里写图片描述
Toast toast = Toast.makeText(mContext, “我是一个默认的Toast”, Toast.LENGTH_LONG);
toast.show();

自定义位置的Toast

这里写图片描述
Toast toast = Toast.makeText(mContext, “我是一个居中的Toast”, Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

带图片的Toast

这里写图片描述
Toast toast = Toast.makeText(mContext, “我是一个带图片的Toast”, Toast.LENGTH_LONG);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.mipmap.ic_img);
toastView.addView(imageView, 0);
toast.show();

完全自定义的Toast

这里写图片描述
Toast toast = new Toast(this);
View toastView = LayoutInflater.from(this)
.inflate(R.layout.layout_image, null, false);
toast.setView(toastView);
toast.show();

其他线程Toast

这里写图片描述
private void displayOtherThread() {
new Thread(new Runnable() {
@Override
public void run() {
showToast();
}
}).start();
}

private void showToast() {
    mHandler.post(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(mContext, "我是一个其他线程的Toast", Toast.LENGTH_LONG).show();
        }
    });
}

参考资料

1、 Android Toast简易消息提示框的使用

2、Android中Toast的用法简介

3、android Toast大全(五种情形)建立属于你自己的Toast

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值