Android進階之Toast重複顯示解決方法
阿新 • • 發佈:2019-02-11
1 解決思路
不用計算Toast的時間之類的,就是定義一個全域性的成員變數Toast, 這個Toast不為null的時候才去make,否則直接setText.為了按返回鍵後立即使Toast不再顯示,重寫父類Activity的onBackPressed()方法裡面去cancel你的Toast即可.
2 程式碼實現
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();
}
/**
* 標題欄返回鍵監聽
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.backView:
cancelToast();//退出吐司
finish();
break ;
}
}