Android實現點擊事件和長點擊事件共存

項目需要判斷一個控件能同時相應長點擊事件和點擊事件,並且在發生長點擊事件後截斷單擊事件,解決後在此mark


1、先設置一個布爾值用來判斷是否發生長點擊事件,定義爲成員變量
private boolean isLongClick;


2、設置長點擊事件監聽器
button.setOnLongClickListener(newOnLongClickListener() {
@Override
	publicboolean onLongClick(View v) {
	<span style="white-space:pre">	</span>//處理長點擊事件
	<span style="white-space:pre">	</span>isLongClick = true;//標記發生長點擊事件
	<span style="white-space:pre">	</span>return false;//不阻斷
<span style="white-space:pre">	</span>}
});


3、設置點擊事件的監聽器,點擊事件的發生是在鬆開button之後的,所以如果發生長點擊事件,長點擊事件一定先執行,鬆開按鈕後點擊事件才觸發,我們在點擊事件裏先根據標記isLongClick判斷是否發生了長點擊事件,如果是的,那麼修改標記爲未發生,然後return,結束事件處理,相當於阻斷了點擊事件。而如果isLongClick爲false,那麼就是長點擊事件未發生,那麼直接處理點擊事件就好了
button.setOnClickListener(newOnClickListener() {
	@Override
	public void onClick(View v) {
		if(isLongClick){//發生長點擊事件
			isLongClick = false;
			return ;
		}else{//沒有發生長點擊事件
		//處理點擊事件
		 
		}
	}
});


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