Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 從零開始學android(android事件的處理方式.二十四.)

從零開始學android(android事件的處理方式.二十四.)

編輯:關於Android編程

在android中一共有 多種事件,每種事件都有自己相對應的處理機制


如以下幾種

1 單擊事件 View.OnClickListener public abstract void onClick (View v) 單擊組件時觸發 2 單擊事件 View.OnLongClickListener public abstract boolean onLongClick (View v) 長按組件時觸發 3 鍵盤事件 View.OnKeyListener public abstract boolean onKey (View v, int keyCode, KeyEvent event) 處理鍵盤事件 4 焦點事件 View.OnFocusChangeListener public abstract void onFocusChange (View v, boolean hasFocus) 當焦點發生改變時觸發 5 觸摸事件 View.OnTouchListener public abstract boolean onTouch (View v, MotionEvent event) 產生觸摸事件 6 創建上下文菜單 View.OnCreateContextMenuListener public abstract void onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 當上下文菜單創建時觸發
監聽方法

1 public void setOnClickListener(View.OnClickListener l) 普通 注冊單擊事件 2 public void setOnLongClickListener(View.OnLongClickListener l) 普通 注冊長按事件 3 public void setOnKeyListener(View.OnKeyListener l) 普通 注冊鍵盤事件 4 public void setOnFocusChangeListener(View.OnFocusChangeListener l) 普通 注冊焦點改變事件 5 public void setOnTouchListener(View.OnTouchListener l) 普通 注冊觸摸事件 6 public void setOnCreateContextMenuListener( View.OnCreateContextMenuListener l) 普通 注冊上下文菜單事件

下面以Onclick單機事件為例 說明android中處理事件的三種方式

1.內部類處理事件

2.匿名內部類處理事件

3.數據源處理事件


例子如下:


XML文件





    




JAVA文件

package com.example.actionoperator;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
	public Button button1, button2, button3;
//	獲取BubuttonOnClickListener對象
	ButtonOnClickListener click =new ButtonOnClickListener();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.activity_main);
		button1 = (Button) this.findViewById(R.id.button1);
		button2 = (Button) this.findViewById(R.id.button2);
		button3 = (Button) this.findViewById(R.id.button3);

		// 使用內部類進行處理
		button1.setOnClickListener(new MyListener());
		// 使用匿名內部類進行處理
		button2.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Toast.makeText(MainActivity.this, "匿名內部類的方法實現方法監聽處理", 2).show();
			}
		});
		// 使用數據源的方法進行處理,可以講所有的單機事件都注冊在這個click上進行處理
		button3.setOnClickListener(click);

	}
	class ButtonOnClickListener implements OnClickListener {
		public void onClick(View v){  
//			讀者可以在這裡設置 switch case 語句對傳來參數的ID進行判斷 實現多個事件的同一方法處理
			 if (v==button3) {
				 Toast.makeText(MainActivity.this, "使用數據源實現方法監聽處理", 2).show();
			}
		   }
	}
	class MyListener implements OnClickListener {

		@Override
		public void onClick(View view) {
			// TODO Auto-generated method stub

			Toast.makeText(MainActivity.this, "內部類的方法實現方法監聽處理", 2).show();
		}
	}

}


最終效果

\\



所有事件的處理方法都基本上是以上的三種處理機制,希望讀者都要認真掌握



下節預報:

Dialog對話框組件

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved