編輯:關於Android編程
Android提供的事件處理機制分為兩類:一是基於監聽的事件處理;二是基於回調的事件處理。對於基於監聽的事件處理,主要的做法是為Android界面組件綁定特定的事件監聽器。對於基於回調的事件處理,主要是重寫Android組件特定的回調函數或重寫Activity的回調函數。
基於監聽的事件處理,在前面的文章中我們已經用過,比如為Button設置點擊監聽器。本文我們主要來看基於回調的事件處理。
我們只需要看主Activity實現文件,其內容如下:
package com.liuhaoyu; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.MotionEvent; import android.widget.Toast; public class MainActivity extends Activity{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override publicboolean onTouchEvent(MotionEvent event) { //TODO Auto-generated method stub Toast.makeText(MainActivity.this,"onTouchEvent(): " + "(" + event.getX() + "," +event.getY() + ")", Toast.LENGTH_SHORT).show(); if(event.getAction()== MotionEvent.ACTION_MOVE) Toast.makeText(MainActivity.this,"onTouchEvent(): touch move", Toast.LENGTH_SHORT).show(); returnsuper.onTouchEvent(event); } @Override publicboolean onKeyDown(int keyCode, KeyEvent event) { //TODO Auto-generated method stub Toast.makeText(MainActivity.this,"onKeyDown(): KeyCode = " + keyCode, Toast.LENGTH_SHORT).show(); returnsuper.onKeyDown(keyCode, event); } @Override publicboolean onKeyUp(int keyCode, KeyEvent event) { //TODO Auto-generated method stub Toast.makeText(MainActivity.this,"onKeyUp(): KeyCode = " + keyCode, Toast.LENGTH_SHORT).show(); returnsuper.onKeyUp(keyCode, event); } } package com.liuhaoyu; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.MotionEvent; import android.widget.Toast; public class MainActivity extends Activity{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override publicboolean onTouchEvent(MotionEvent event) { //TODO Auto-generated method stub Toast.makeText(MainActivity.this,"onTouchEvent(): " + "(" + event.getX() + "," +event.getY() + ")", Toast.LENGTH_SHORT).show(); if(event.getAction()== MotionEvent.ACTION_MOVE) Toast.makeText(MainActivity.this,"onTouchEvent(): touch move", Toast.LENGTH_SHORT).show(); returnsuper.onTouchEvent(event); } @Override publicboolean onKeyDown(int keyCode, KeyEvent event) { //TODO Auto-generated method stub Toast.makeText(MainActivity.this,"onKeyDown(): KeyCode = " + keyCode, Toast.LENGTH_SHORT).show(); returnsuper.onKeyDown(keyCode, event); } @Override publicboolean onKeyUp(int keyCode, KeyEvent event) { //TODO Auto-generated method stub Toast.makeText(MainActivity.this,"onKeyUp(): KeyCode = " + keyCode, Toast.LENGTH_SHORT).show(); returnsuper.onKeyUp(keyCode, event); } }
這個例子響應按鍵事件和觸摸屏事件。
對於按鍵事件,我們重寫了onKeyDown()和onKeyUp()函數。
對於觸摸屏事件,我們重寫了onTouchEvent()函數。
基於回調事件處理函數,有一個boolean類型的返回值,這個返回值用來表明該事件處理函數能否完成對該事件的處理,如果能完成,返回值為true,事件就是會繼續傳遞下去。如果不能完成,返回值為false,表明沒有完成對事件的處理,事件還會繼續傳遞下去。
本文實例講述了Android DigitalClock組件用法。分享給大家供大家參考,具體如下:DigitalClock組件的使用很簡單,先看看效果圖:DigitalCl
前言1.由於粘貼了較大的代碼,造成內容比較長,可能會花費您較長的時間。2.項目裡面沒有做權限判斷,所以如果發現有頁面發生崩潰可能是權限沒有打開,請打開權限後再進行嘗試。3
在實際開發中,Activity需要啟動但界面又不能顯示出來,這時就需要後台啟動,但又不是finish(),這時就要用到Activity中的moveTaskToBack函數
?Android統計圖表之柱狀圖(條形圖)柱狀圖是統計圖表中經常用到的一種圖表,比如降雨量之類的統計展示。我之前寫了一些關於Android上的統計圖表庫MPAndroid