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);
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);
}
效果如下:

尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。