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

Android onClick 按鈕單擊事件 四種常用寫法

編輯:關於Android編程

這裡使用四種onClick單擊事件,來實現電話拔號器的DEMO。

 

XML文件

 

 

第一種、匿名內部類:

 

 

protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 	
	Button bt_dial = (Button) findViewById(R.id.bt_dial);
        bt_dial.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialPhone();
            }
        });
}

 

 

第二種、自定義單擊事件監聽類:

 

        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
        	et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
        	
		Button bt_dial = (Button) findViewById(R.id.bt_dial);
        	bt_dial.setOnClickListener(new MyListener());
    	}

	private class MyListener implements View.OnClickListener {
       		@Override
        	public void onClick(View view) {
            	dialPhone();
        	}
    	}

第三種、Activity繼承View.OnClickListener,由Activity實現OnClick(View view)方法,在OnClick(View view)方法中用switch-case對不同id代表的button進行相應的處理:

 

 

public class MainActivity extends Activity implements View.OnClickListener {
    EditText et_number;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
        
	Button bt_dial = (Button) findViewById(R.id.bt_dial);
        bt_dial.setOnClickListener(this);

    }

    public void onClick(View view) {

        switch (view.getId()){
            case R.id.bt_dial:
                dialPhone();
                break;
            default:
                break;
        }
    }
}

 

 

第四種、在XML文件中顯示指定按鈕的onClick屬性,這樣點擊按鈕時會利用反射的方式調用對應Activity中的click()方法:

 


    public void dialPhoneMethod(View view){
        dialPhone();
    }

    private void dialPhone() {
        String number = et_number.getText().toString().trim();

        if (TextUtils.isEmpty(number)){
            Toast.makeText(this, 電話號碼不能為空, Toast.LENGTH_LONG).show();
            return;
        }
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse(tel: + number));
        startActivity(intent);
    }

總結:

 

第四種寫法整個代碼中都不用聲明button就可以實現button的單擊事件。但通常不推薦這樣使用,第三種方法是onClick最佳的的使用方式。按鈕少的時候用匿名內部類會比較快,比如寫demo測試的時候。

 

 

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