如何防止android Toast重复显示
发布网友
发布时间:2022-04-25 02:14
我来回答
共4个回答
热心网友
时间:2023-10-21 00:09
Toast也是一个容器,可以包含各种View,并承载着它们显示。
使用场景:
1、需要提示用户,但又不需要用户点击“确定”或者“取消”按钮。
2、不影响现有Activity运行的简单提示。
用法:
1、可以通过构造函数初始化:
1 //初始化Toast
2 Toast toast = new Toast(this);
3 //设置显示时间,可以选择Toast.LENGTH_LONG或者Toast.LENGTH_SHORT
4 toast.setDuration(Toast.LENGTH_LONG);
5 //承载一个TextView,用来显示文字
6 TextView view = new TextView(this);
7 //设置TextView的值
8 view.setText("这是一个Toast提示");
9 //设置TextView的布局
10 view.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
11 //Toast承载该
12 TextViewtoast.setView(view);
13 //显示Toast
14 toast.show();
2、上述的方法过于复杂,一般只适用于构造特殊界面的Toast,如果只想单纯的进行文字提示,可以用工厂方法,它会自动构建一个带边框和文字的Toast:
1 //利用工厂方法构造一个简单的Toast,并链式结构的直接进行提示
2 Toast.makeText(this, "这是一个Toast提示", Toast.LENGTH_LONG).show();
总结:Toast可以说是最常用也是最简单的Android控件之一,其自动关闭的功能大大简化了代码量,不失为用户提示的最佳选择。
热心网友
时间:2023-10-21 00:10
Toast.makeText(PostActivity.this, "显示时间短", Toast.LENGTH_SHORT).show();
我觉得你的问题可以是因为最后的参数设置的是Toast.LENGTH_LONG,而不是Toast.LENGTH_SHORT,如果是LONG的话显示的时间会很长。
如果不是这个问题的话,那你的Toast语句是不是写在循环里面了?
热心网友
时间:2023-10-21 00:10
当Toast响应点击事件时,如果用户连续点击,就会导致多个Toast排队等待依次显示,从而感觉很不友好,这个时候可以用以下方法避免之:
[java] view plaincopy
private static Toast mToast = null;
public static void showToast(Context context, String text, int ration) {
if (mToast == null) {
mToast = Toast.makeText(context, text, ration);
} else {
mToast.setText(text);
mToast.setDuration(ration);
}
mToast.show();
}
热心网友
时间:2023-10-21 00:11
Toast不会重复显示的,
除非你把它写在了循环里,不然它是在你写的地方,根据你触发的事件来显示。