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

Android按鈕的點擊事件的4種寫法

編輯:關於Android編程

1.匿名內部類

2.創建一個類實現OnclickListener,setOnClickListener時傳這個類的對象

3.讓當前類直接實現OnclickListener,setOnClickListener時傳this,一般開發采用該方式。

4.在布局文件中為控件配置一個Onclick屬性,在布局對應的Activity中創建一個以屬性值為名方法,切記public,名字相同,傳View;

一般公司開發不用,做簡單測試時使用即可。

一、通過匿名內部類來實現,代碼由電話撥號器項目改編:

btn_call.setOnClickListener(new OnClickListener()
{ 
    @Override
    public void onClick(View v) {
        EditText et_number = (EditText) findViewById(R.id.et_number);
        String number = et_number.getText().toString().trim(); 
// 獲取文本框的內容
        if ("".equals(number)) {
            // context 上下文 duration 顯示土司的時長
            Toast.makeText(MainActivity.this, "號碼不能為空", Toast.LENGTH_LONG).show();
            return;
        }
        Intent intent = new Intent();  // 創建意圖對象
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:" + number));
        startActivity(intent);
    }
});

二、通過內部類來實現

其實第二種方法跟第一種方法在本質上沒有任何差別,雖然一個是匿名內部類另外一個是內部類,但是這只是寫法上的差別,兩者都是通過Button對象的setOnClickListener()方法來綁定實現的。

代碼摘抄自電話撥號器項目:

定義一個內部類目的實現按鈕監聽

  private class MyButtonListener implements OnClickListener {
        @Override
        public void onClick(View v) {
            EditText et_number = (EditText) findViewById(R.id.et_number);
            String number = et_number.getText().toString().trim(); 
// 獲取文本框的內容
            if ("".equals(number)) {
                Toast.makeText(MainActivity.this, "號碼不能為空", Toast.LENGTH_LONG).show();
                return;
            }
            System.out.println("number--" + number);
            Intent intent = new Intent();  
// 創建意圖對象
            intent.setAction(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:" + number));
            startActivity(intent);
        }
    }

三、由類文件去實現監聽接口

代碼如下:

//第一步:Activity實現OnClickListener接口
public class SecondActivity extends Activity implements OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
//第二步:得到button,並且設置點擊監聽為:this
        Button btnCall = (Button) findViewById(R.id.btn_call);
        btnCall.setOnClickListener(this);
}
//第三步:重寫OnClickListener接口的onClick方法
    @Override
public void onClick(View v) {
//根據v的id來區分點擊的是哪個按鈕
        switch (v.getId()) {
            case R.id.btn_call:
                    //DoSomething
            break;
        }
    }
}

四、在布局文件中注冊事件

1.在布局文件中添加android:onClick屬性

2.在相應的java代碼中定義call方法

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