安卓自定義按鈕 只響應長按事件不響應短按

2021-08-27 18:23:55 字數 1286 閱讀 6966

有個按鈕,需要在平時是不啟用狀態,但是又需要長按來設定按鈕的引數。

如果setenable(false) 的話,長按也不管用。

相當於需要重寫下 按鈕的事件監聽,比較簡單,只做個記錄,以後可以拿來用

public class mybutton extends button

public mybutton(context context, attributeset attrs)

public mybutton(context context, attributeset attrs, int defstyleattr)

/*** 設定只響應長按時間 不響應單擊事件

*/public void setonlyanslongclick(boolean onlyanslongclick)

});this.setbackground(context.getresources().getdrawable(r.drawable.btn_bg_gray));

}else

});this.setbackground(context.getresources().getdrawable(r.drawable.btn_bg_blue));}}

shortclicklistenerinte***ce shortclicklistenerinte***ce;

public void setshortclicklistener(shortclicklistenerinte***ce clicklistenerinte***ce)

public inte***ce shortclicklistenerinte***ce

onlongclicklistener onlongclicklistener = new onlongclicklistener()

@override

public void docancel()

});// mydialogsetting.show(); //暫時先不用長按事件

return true;}};

}

使用該按鈕的時候,不再使用系統預設監聽,使用如下

btn1.setshortclicklistener(new mybutton.shortclicklistenerinte***ce() 

});btn1.setonlyanslongclick(false); //設定可監聽短按和長按

btn1.setonlyanslongclick(true); //設定只響應長按 不響應短按

Android自定義長按事件

android系統自帶了長按事件,setonlongclicklistener即可監聽。但是有時候,你不希望用系統的長按事件,比如當希望長按的時間更長一點的時候。這時候就需要自己來定義這個長按事件了。packagechroya.fun importandroid.content.context im...

安卓之自定義按鈕(以及shape詳解)

簡述 我們知道安卓原生的按鈕實在是不堪入目,而面對市場的需求,這麼醜的按鈕是沒有競爭力的,所以乙個可以自定義的好看的按鈕必不可缺。後面還有shape的屬性詳解彙總。這個實現比較簡單,直接貼 了 1.首先要在drawable資料夾裡面新增個樣式檔案shapecircle.xml 2.在button的b...

自定義事件的響應

有些時候需要自己控制事件的響應,這時可以用列表將註冊的委託保持起來,通過遍歷這個列表去執行,例如 當委託的函式返回true時就停止遍歷。public delegate bool booldelegate private listmonhomebuttonclick new list public e...