音樂播放器中用戶在選擇播放模式時,傳統的toast會一個顯示完之後纔會顯示下一個,用戶在連續的點擊之後,滯後性十分嚴重,影響用戶體驗。
所以必須及時的響應用戶的點擊事件,於是我們想到只用一個全局Toast對象,判斷toast對象,如果存在就直接更改Toast的值就好了,下面是一個簡易的選擇播放模式的demo,用戶每次點擊圖片時,會切換圖片,並及時用Toast顯示相應模式。
public class MainActivity extends Activity {
private int[] playstyle = new int[] { R.drawable.random, R.drawable.shunxu,
R.drawable.single, R.drawable.xunhuan };
private String[] playtext = new String[] { "隨機播放", "順序播放", "單曲循環", "列表循環" };
private ImageView mImageView;
private int mStrat = 0;
private Toast mToast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = (ImageView) findViewById(R.id.playstyle);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
++mStrat;
switch (mStrat % 4) {
case 0:
mImageView.setImageResource(playstyle[0]);
ShowToast( playtext[0]);
break;
case 1:
mImageView.setImageResource(playstyle[1]);
ShowToast( playtext[1]);
break;
case 2:
mImageView.setImageResource(playstyle[2]);
ShowToast( playtext[2]);
break;
case 3:
mImageView.setImageResource(playstyle[3]);
ShowToast( playtext[3]);
break;
default:
break;
}
}
});
}
/**
* 將toast封裝起來,連續點擊時可以覆蓋上一個
*/
public void ShowToast(String text){
if (mToast == null) {
mToast = Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT);
mToast.show();
}else {
mToast.setText(text);
mToast.show();
}
}
}
實現效果如下,連續的點擊下,依然能及時顯示相應的文本