解決思路:
不用計算Toast的時間之類的,就是定義一個全局的成員變量Toast, 這個Toast不為null的時候才去make,否則直接setText.為了按返回鍵後立即使Toast不再顯示,重寫父類Activity的onBackPressed()方法裡面去cancel你的Toast即可.
代碼:
-
private Toast mToast;
-
- public void showToast(String text) {
- if(mToast == null) {
- mToast = Toast.makeText(TestActivity.this, text, Toast.LENGTH_SHORT);
- } else {
- mToast.setText(text);
- mToast.setDuration(Toast.LENGTH_SHORT);
- }
- mToast.show();
- }
-
- public void cancelToast() {
- if (mToast != null) {
- mToast.cancel();
- }
- }
-
- public void onBackPressed() {
- cancelToast();
- super.onBackPressed();
- }
如果哪位有更好的方法,請不吝分享,謝謝!
相關鏈接:Android中Toast重復顯示問題解決 http://www.linuxidc.com/Linux/2012-08/67529.htm
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11