Andorid實現Toast覆蓋上一個文本

       音樂播放器中用戶在選擇播放模式時,傳統的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();
		}
	}

}

實現效果如下,連續的點擊下,依然能及時顯示相應的文本


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章