日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 事件处理

發布時間:2023/11/29 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 事件处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 事件就是用戶對圖形的操作,在android手機和平板電腦上,主要包含物理按鍵事件和觸摸屏事件兩類。物理按鍵事件包含:按下、抬起、長按等;觸摸屏事件主要包含按下、抬起、滾動、雙擊等。

??? 在View中提供了onTouchEvent()方法,可以重寫該方法來處理觸摸屏事件,適用于重寫組件的場景;android中還提供了setOnTouchListener()方法為組件設置監聽器來處理觸摸屏事件。

??? 在android中提供啦兩種方式的事件處理,一種是基于監聽的事件處理,一種是基于回調的事件處理。

一、基于監聽的事件處理

?? 實現基于監聽的事件處理,主要做法就是為android的UI組件綁定特定的事件監聽器,在事件監聽的處理模型中,主要有三個對象:

?? ①、Event Source(事件源):即產生事件的來源,通常是各種組件,例如:按鈕、窗口、菜單等

?? ②、Event(事件):事件中封裝了UI組件上發生的特定事件的具體信息,如果事件需要獲取UI組件上所發生事件的相關信息,一般通過Event對象來傳遞

?? ③、Event Listener(事件監聽器):監聽事件源所發生的事件,并對不同的事件做出相應的相應

二、基于回調的事件處理

??? 實現基于回調的事件處理,就是重寫Android組件特定的回調方法或重寫Activity的回調方法。為了使用回調機制來處理GUI組件(圖形用戶界面)上所發生的事件,需要為該組件提供對應的事件處理方法,可以通過繼承GUI組件類,并重寫該類的事件處理方法來實現。

??? View類中包含的一些事件處理的回調方法:

???? ①、Boolean onKeyDown(int keyCode,keyEvent event)? 當用戶在該組件上按下某個按鍵時觸發

???? ②、Boolean onKeyLongPress(int keyCode,KeyEvent event)? 當用戶在該組件上長按某個按鍵時觸發

???? ③、Boolean onKeyShortcut(int keyCode,KeyEvent event)? 當一個鍵盤快捷鍵事件發生時觸發

???? ④、Boolean onKeyUp(int keyCode,KeyEvent event)? 當用戶在該組件上松開某個按鍵時觸發

???? ⑤、Boolean onTouchEvent(MotionEvent event)? 當用戶在該組件上觸發觸摸屏事件時觸發

???? ⑥、boolean onTrackballEvent(MotionEvent event) 當用戶在該組件上觸發軌跡球事件時觸發

一般來說,基于回調的事件處理方式可用于處理一些通用性的事件,事件處理的代碼會比較簡潔。但對于某些特定的事件,無法采用基于回調的事件處理方式實現時,就只能采用基于監聽的事件處理方式。

三、物理按鍵事件處理

?? ①、Android設備可用物理按鍵及其觸發事件

?? 音量鍵? KEYCODE_VOLUME_UP / KEYCODE_VOLUME_DOWN 控制當前上下音量,如音樂播放器、手機鈴聲、通話音量

?? 返回鍵? KEYCODE_BACK?? 返回到前一個界面

?? 菜單鍵? KEYCODE_MENU?? 顯示當前應用的可用菜單

?? ②、在android中處理物理按鍵事件時,常用的回調方法:

??? onKeyUp()? 當用戶松開某個按鍵時觸發該方法

??? onKeyDown() 當用戶按下(未松開)某個按鍵時觸發該方法

??? onkeyLongPress() 當用戶長按某個按鍵時觸發該方法

??? ③、獲取系統時間:system.currentTimeMillis()

四、觸摸屏事件處理

?? ①、單機事件

???? 在手機應用中,經常需要實現在屏幕中單機某個按鈕或組件執行一些操作,這時就需要通過單機事件來完成。在處理單機事件時,可以通過為組件添加單擊事件監聽器的方法來實現。android為組件提供了setOnClickListener()方法,用于為組件設置單擊事件監聽器。該方法的參數是一個View.OnClickListener接口的實現類對象。View.OnClickListener接口定義如下:

???

1 pubic static interface View.OnClickListener{ 2 public void onClick(View v); 3 4 }

? 在實現View.OnClickListener接口時,需要重寫onClick()方法。當單擊事件觸發后,將調用onClick()方法執行具體的事件處理操作。

ag:為button的按鈕添加一個單擊事件監聽器,并且實現單擊該按鈕時彈出消息提示顯示:單擊了按鈕,代碼如下:

???

Button button =new Button(this) button.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){Toast.makeText(MainActivity.this,"單擊了按鈕",Toast.LENGTH_SHORT).show();} });

?? ②、長按事件

??? 長按事件不同于單擊事件,長按事件需要長按某一個組件2秒之后才會觸發。在處理長按事件時,可以通過為組件添加長按事件監聽器的方法來實現。android為組件提供了setOnLongClickListener()方法,用于為組件設置長按事件監聽器,該方法的參數是View.OnLongClickListener接口的實現類對象,接口定義如下:

1 public static interface View.OnLongClickListener{ 2 3 public void onLongClick(View v) 4 5 }

在實現View.OnLongClickListener接口時,需要重寫onLongClick()方法。當長按事件觸發后,將調用onLongClick()方法執行具體的事件處理操作。

轉載于:https://www.cnblogs.com/SM-Elephant/p/9831214.html

總結

以上是生活随笔為你收集整理的Android 事件处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。