今天在做一個按鈕的長按事件,長按的時候彈出一個Dialog彈出框,點擊則是進入到下一個界面。 在我調試的時候,發現長按確實彈出了一個Dialog,但是同事他還跳轉到下一個界面了。 這麼說,就是在我長按的時候,出發了setOnLongClickListener和OnClick事件。 後面查詢資料發現,
今天在做一個按鈕的長按事件,長按的時候彈出一個Dialog彈出框,點擊則是進入到下一個界面。
在我調試的時候,發現長按確實彈出了一個Dialog,但是同事他還跳轉到下一個界面了。
這麼說,就是在我長按的時候,出發了setOnLongClickListener和OnClick事件。
後面查詢資料發現,確實如此。
setOnLongClickListener中return的值決定是否在長按後再加一個短按動作 true為不加短按,false為加入短按
比如:以下代碼只會執行長按事件 mBtn.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { return true; } });
打個比方,就是說當return返回值為true的時候,代表這個事件已經消耗完了,返回值為false的時候他還會繼續傳遞,結果再加上一個短按。
其次,Activity中的onKeyDown也是如此。
返回true的時候表示事件已經完整的執行完畢了,不再執行其他的回調函數,返回false表示並未完全處理完該事件還會繼續調用其他回調函數。具體的效果有時間的童鞋可以嘗試一下。