Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android點擊事件的四種寫法

Android點擊事件的四種寫法

編輯:關於Android編程

Android點擊事件的四種寫法


一、Android點擊事件的四種寫法

1、點擊事件的第一種寫法 . 寫一個內部類.實現點擊事件的接口

bt.setOnClickListener(new MyButtonListener());

2、點擊事件的第二種寫法,匿名內部類

bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { callPhone(); } }); 3、點擊事件的第三種寫法:this-讓這個activity實現事件接口,一般測試時候用,正式上線的時候不用。 class Test implements OnClickListener{

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

}
} 4、點擊事件的第四種寫法 在xml文件裡面定義 button點擊的時候 調用什麼方法 布局xml配置: android:onClick="dailPhone" 然後在當前Activity中實現該事件的接口,再寫一個dailPhone方法, 該方法名字與xml中配置的名字一樣,且必須是public,而且要一個View對象, 因為底層的實現是反射且沒有getDeclaredMethod() public void dailPhone(View view){ callPhone(); }

二、四種事件監聽應用場景

a) 內部類方式——注冊的事件源比較少 b) 匿名內部類方法——事件源又多一點 c) 當前activity中this——事件源更多 d) 在ui的xml文件中,配置onClick屬性(該方法不能設置為private) 因為底層的實現-反射沒有getDeclaredMethod() ——測試的時候用,實際開發中不用,莫名其妙多的方法。

三、代碼演示:

package cn.test.phone;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {

private EditText etDail;
/**
* activity創建的時候 調用的方法
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//1、設置activity顯示的內容:一個xml文件
setContentView(R.layout.phone_ui);
//2、通過id尋找控件
etDail = (EditText) MainActivity.this.findViewById(R.id.et_dail);
//尋找edittext 界面初始化的時候尋找控件 ,避免多次的查詢
Button btDail = (Button) this.findViewById(R.id.bt_dail);
//3、給按鈕注冊一個點擊事件的監聽器

//點擊事件的第一種寫法 . 寫一個內部類.實現點擊事件的接口
//btDail.setOnClickListener(new MyButtonListener());

/*點擊事件的第二種寫法,匿名內部類
btDail.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
callPhone();
}
});*/

/*
點擊事件的第三種寫法:this-讓這個activity實現事件接口,一般測試時候用,正式上線的時候不用。
//btDail.setOnClickListener(this);
*/ }

// 點擊事件的第四種寫法 在xml文件裡面定義 button點擊的時候 調用什麼方法
public void dailPhone(View view){
callPhone();
}

//方式三:讓這個activity實現事件接口,一般測試時候用,正式上線的時候不用。
@Override
public void onClick(View v) {
callPhone();
}

//方式一:點擊事件的第一種寫法 . 寫一個內部類.實現點擊事件的接口
/*private class MyButtonListener implements OnClickListener{

*//**
* 當按鈕被點擊的時候調用
*//*
@Override
public void onClick(View v) {

callPhone();
}
}*/
private void callPhone() {
String phoneNumber = etDail.getText().toString();

Intent intent = new Intent();
//設置意圖動作
intent.setAction(Intent.ACTION_CALL);
//設置意圖數據
//intent.setData(Uri.parse(phoneNumber));//問題i1:
intent.setData(Uri.parse("tel:"+phoneNumber));
//開啟意圖
MainActivity.this.startActivity(intent);
}

}

 


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