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{//沒有發生長點擊事件
//處理點擊事件
}
}
});