Toast显示提示信息

2016-03-02 / 15 阅读 / Android

Toast是一种非常方便的提示消息框,它可以为用户显示一段提示消息

特点

  • Toast不会获取焦点

  • 提示的消息过一段时间会消失

使用方法

Toast的构造器或makeText()静态方法创建一个Toast对象。

makeText()创建代码如下:

布局文件就一个Button

show.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, "我出现了...",Toast.LENGTH_SHORT).show();
    }
});
效果如下:

 

构造器创建代码如下
        show.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast toast = new Toast(MainActivity.this);
                //设置时间
                toast.setDuration(Toast.LENGTH_SHORT);
                //对齐方式,偏移量---左下
                toast.setGravity(Gravity.BOTTOM | Gravity.LEFT, 0, 0);

                //自定义View
                TextView textView = new TextView(MainActivity.this);
                textView.setText("我出现了...");
                toast.setView(textView);

                toast.show();
            }
        });
此处不可直接调用toast.setText()
否则会报 Caused by: java.lang.RuntimeException: This Toast was not created with Toast.makeText()

看源码原因是,构造器创建默认是不会创建mNextView的,需要我们自己去设置View ,toast.setView(textView);当然这边可以设置任何View,不仅限于TextView

public void setText(CharSequence s) {
        if (mNextView == null) {
            throw new RuntimeException("This Toast was not created with Toast.makeText()");
        }
        TextView tv = (TextView) mNextView.findViewById(com.android.internal.R.id.message);
        if (tv == null) {
            throw new RuntimeException("This Toast was not created with Toast.makeText()");
        }
        tv.setText(s);
}
效果如下:

相关推荐