使用了很久的安卓的事件監聽,今天在準備面試的時候也做乙個小小的總結吧,常用的安卓事件監聽主要有4種方式
第一種方式是直接繫結標籤的方式,比如說我們在布局檔案中增加乙個οnclick=」click」
那麼我們在主介面通過可以這樣進行事件監聽的實現
經驗之談
關於toast的,其實在第乙個傳入上下文的時候,最好將當前的activity的名.this的方式,不然很容易寫成class,當然,這是我的錯誤
//以前自己總是忘記增加乙個view物件,或者是將public寫成private
public
void
click(view view)
第二種方式就是通過匿名內部類的方式,也就是找到元件,然後增加setonclicklistener()的方式,這個的錯誤比較少實現
舉例:
button button=(button)findviewbyid(r.id.button_1);
button.setonclicklistener(new view.onclicklistener()
);
第三種方式,把當前的activity設定為事件***
我們可以在找到的控制項中增加方法,但是我們傳進去的引數是this,然後在主要的activity中實現方法,這種方法可以使用到switch語句,通過getid()的方式得到多個控制項的監聽
第四種方式
我們可以將傳入的引數變成我們已經實現onclicklistener的物件,傳進入同樣可以實現監聽
button button=(button)findviewbyid(r.id.button_1);
button.setonclicklistener(new mylistener);
private
class
mylistenr
implements
onclicklistener(
);
對於四種方法而已,個人總結還是匿名內部模擬較好,因為第一種方法直接繫結標籤的方式雖然很簡單,但是對程式的可讀性不夠好,容易造成函式的混淆,另外**也不夠美觀。
對於在activity進行事件監聽,本人覺得也是不太好,原因是看起來彆扭
其他兩種方法,見仁見智吧
安卓開發 button事件監聽
事件監聽的listener,有以下幾種方式 1 宣告乙個普通的class,實現onclicklistener介面,然後在button的setonclicklistener中new該類的乙個物件。2 使用匿名內部類,直接 btn.setonclicklistener new onclicklisten...
安卓多種監聽事件
view.addtextchangedlistener new textwatcher override public void ontextchanged charsequence charsequence,int i,int i1,int i2 override public void afte...
安卓事件分發
dispatchtouchevent 事件派發先是隧道方式 再是冒泡方式 隧道方式傳遞,直到某乙個元素消耗此事件,由上至下逐層分發檢視。冒泡方式傳遞,當某個檢視消耗事件後,其return true,是與分發相反的方法向上傳遞。具體分發給哪乙個檢視是通過當前觸控點座標在當前層哪個檢視上判斷 onint...