在我的应用程序中,点击按钮我创建一个Toast as -
Toast.makeText(context,"Please Enter Username",Toast.LENGTH_SHORT).show();
但是当有人点击按钮5-6次并关闭应用程序,或者进入另一个屏幕时,它仍然会在另一个屏幕上继续显示Toast一段时间。我已经看到了很多相同的解决方案。
我试过了 -
toast = Toast.makeText(LoginActivity.this, message, Toast.LENGTH_SHORT);
toast.show();
并取消了这个吐司 -
onPause(){
if(toast!=null){
toast.cancel();
}
和onDestroy()
我希望当有人点击按钮5-6次并退出应用程序或该活动时,toast消息应该消失。或建议任何替代解决方案。
答案 0 :(得分:16)
但它给了我一个力量接近 - Toast从未使用Toast.makeText()调用;
您可以创建一个字段变量和方法,一次只显示一个Toast:
Toast toast;
public void displayToast(String message) {
if(toast != null)
toast.cancel();
toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
toast.show();
}
在onPause()
退出时取消现有的Toast:
protected void onPause() {
if(toast != null)
toast.cancel();
super.onPause();
}
现在,只要您想要显示Toast,只需致电:
displayToast("Please Enter Username");
答案 1 :(得分:0)
试试这个:
Toast mToast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
}
@Override
protected void onPause() {
mToast.cancel();
// TODO Auto-generated method stub
super.onPause();
}
public void abc(View c) {
mToast.cancel();
mToast.setDuration(Toast.LENGTH_SHORT);
mToast.setText("This is hi" + (i++));
mToast.show();
}
而不是使用'Toast.makeText'使用'mToast.setText(“”)' 通过这种方式,您将获得所需的输出。