Android Toast.makeText

来源:互联网 发布:淘宝妈妈装模特是谁 编辑:程序博客网 时间:2024/05/17 07:32

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

这里同标题所说 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!


0 0
原创粉丝点击