Android Toast.makeText

在项目开发中很少去关注细节

这里同标题所说 Toast.makeText 我们知道这个方法有两个重载方法(如截图)

 

我们可以发现最后一个参数是 int  duration 控制显示提示信息的显示时间

一般我们在项目中有 这两个值

Toast.makeText(this, "" ,Toast.LENGTH_LONG).show();
		Toast.makeText(this, "" ,Toast.LENGTH_SHORT).show();

Toast.LENGTH_LONG
Toast.LENGTH_SHORT
这是Toast类中的两个常量

但是对应的是1 和 0 可想而知

// Field descriptor #8 I
  public static final int LENGTH_SHORT = 0;
  
// Field descriptor #8 I
  public static final int LENGTH_LONG = 1;


 

 

这个是个int 型 那么我们应该可以传一个int类型的参数 如:30000

但是其实我们发现 没有作用 它根本不是毫秒值


于是我们追中Andorid源码 在显示的时候 这个 0 和 1 是如何处理的!我们发现(如下:)

private static final int LONG_DELAY = 3500; // 3.5 seconds
     private static final int SHORT_DELAY = 2000; // 2 seconds

long delay = immediate ? 0 : (r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY);

我们可以看出 如果是0 则 是2秒 如果是 1 则是3.5秒 而且这里是一个三位运算符 呵呵!


我们反之看一下api 为何有这样的方法 传递不明确啊!我们发现 如下图:


其实 api是有提示的!我们没仔细看! 这句英语大家都应该能看懂!


呵呵 神奇的api!

(个人微信号)  (技术公众号)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值