问题:对用户的某个动作弹出Toast,采用一般的显示Toast的方法,如果用户多次做某个动作,则屏幕会一直显示Toast,体验不好。
目标:如果Toast正在显示,同个Toast不再弹出Toast,而是在原来的Toast上继续显示一定时间。
代码:
// 成员变量mToast
private Toast mToast;
// 显示Toast
if (mToast == null) {
mToast = Toast.makeText(getApplicationContext(), getResources().getString(R.string.NOT_AVAILABLE), Toast.LENGTH_SHORT);
} else {
mToast.setText(getResources().getString(R.string.NOT_AVAILABLE));
mToast.setDuration(Toast.LENGTH_SHORT);
}
mToast.show();
如上代码,需要定义一个mToast成员变量,当需要显示Toast时,判断这个Toast是否在显示,如果有在显示,则重新设置要显示的文本和时间,如果没有显示,则弹出一个新的Toast。