怎么解决toast连续弹出的问题
3个回答
展开全部
Android中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。
在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时,会导致出现很多个Toast,依次显示,会在页面上停留很长时间,这个会严重影响软件的用户亲和性。我们可以通过一下方法来实现在一个Toast没有结束的时候再显示Toast不累加时间,而是打断当前的Toast,显示新的Toast。这样Toast就不会停留在界面很久。而最多显示一个Toast提示时间的。
import android.widget.Toast;
--------------------------------------------------------------------------------
//使用的地方1
showTextToast(getString(R.string.toast_irregular_number));
//使用的地方2
showTextToast(getString(R.string.toast_irregular_number2));
--------------------------------------------------------------------------------
private Toast toast = null;
private void showTextToast(String msg) {
if (toast == null) {
toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
} else {
toast.setText(msg);
}
toast.show();
}
在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时,会导致出现很多个Toast,依次显示,会在页面上停留很长时间,这个会严重影响软件的用户亲和性。我们可以通过一下方法来实现在一个Toast没有结束的时候再显示Toast不累加时间,而是打断当前的Toast,显示新的Toast。这样Toast就不会停留在界面很久。而最多显示一个Toast提示时间的。
import android.widget.Toast;
--------------------------------------------------------------------------------
//使用的地方1
showTextToast(getString(R.string.toast_irregular_number));
//使用的地方2
showTextToast(getString(R.string.toast_irregular_number2));
--------------------------------------------------------------------------------
private Toast toast = null;
private void showTextToast(String msg) {
if (toast == null) {
toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
} else {
toast.setText(msg);
}
toast.show();
}
展开全部
if (toast != null) {
toast.cancel(); //取消
toast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); //重新新建并显示吐司
} else {
toast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT);
}
toast.show();
//完美解决连续点击过程中吐司也会消失问题,连续点击停止2秒后吐司自动消失
toast.cancel(); //取消
toast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); //重新新建并显示吐司
} else {
toast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT);
}
toast.show();
//完美解决连续点击过程中吐司也会消失问题,连续点击停止2秒后吐司自动消失
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用沙2011的回答:
Android中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。
在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时,会导致出现很多个Toast,依次显示,会在页面上停留很长时间,这个会严重影响软件的用户亲和性。我们可以通过一下方法来实现在一个Toast没有结束的时候再显示Toast不累加时间,而是打断当前的Toast,显示新的Toast。这样Toast就不会停留在界面很久。而最多显示一个Toast提示时间的。
import android.widget.Toast;
--------------------------------------------------------------------------------
//使用的地方1
showTextToast(getString(R.string.toast_irregular_number));
//使用的地方2
showTextToast(getString(R.string.toast_irregular_number2));
--------------------------------------------------------------------------------
private Toast toast = null;
private void showTextToast(String msg) {
if (toast == null) {
toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
} else {
toast.setText(msg);
}
toast.show();
}
Android中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。
在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时,会导致出现很多个Toast,依次显示,会在页面上停留很长时间,这个会严重影响软件的用户亲和性。我们可以通过一下方法来实现在一个Toast没有结束的时候再显示Toast不累加时间,而是打断当前的Toast,显示新的Toast。这样Toast就不会停留在界面很久。而最多显示一个Toast提示时间的。
import android.widget.Toast;
--------------------------------------------------------------------------------
//使用的地方1
showTextToast(getString(R.string.toast_irregular_number));
//使用的地方2
showTextToast(getString(R.string.toast_irregular_number2));
--------------------------------------------------------------------------------
private Toast toast = null;
private void showTextToast(String msg) {
if (toast == null) {
toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
} else {
toast.setText(msg);
}
toast.show();
}
展开全部
private Toast toast = null;
private String msg ="what you want";
......
if (toast != null) {
toast.setText(msg);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
} else {
toast = Toast.makeText(InsertActivity.this, msg, Toast.LENGTH_SHORT);
toast.show();
}
private String msg ="what you want";
......
if (toast != null) {
toast.setText(msg);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
} else {
toast = Toast.makeText(InsertActivity.this, msg, Toast.LENGTH_SHORT);
toast.show();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询