Android代碼學習--點擊事件的幾種寫法

由來:常規的寫法參見《寫一個apk》,每次點擊按鈕,按鈕先查找文本框等元素,而後再操做,其實查找操做是很費時的操做,所以將該定義放到Activity的onCreate中:Oncreate只會執行一次,這樣Activity一旦執行,就先建立好控件們了。android

第二種方法:經過匿名內部類的方法:就是button.setOnClickListener(new OnClickListener(){ide

//實現OnClickListener接口佈局

@Overridethis

public void onClick(View v){xml

String number = mEditText.getText().toString();對象

Log.i(tag,number); //這個是說,在運行時,log框裏面有個tag標籤,若是裏面輸出的是MainActivity,遇到電話號碼時候,就輸出了;接口

Log.i(tag,「匿名內部類」); //這句打印出來就是,調用到匿名內部類時候,打印輸出「匿名內部類」這幾個字。事件

//撥打電話號碼get

Intent intent = new Intent();it

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

//android裏面

startActivity(intent);

}

));

 

方法三:企業裏經常使用的方法---讓MainActivity做爲實現者,實現按鈕註冊的點擊事件。企業這麼寫,是由於界面上一般好幾十個按鈕,若是每一個按鈕都用匿名內部類方法寫,很不方便;用這種方法,只須要多寫幾個switch分支便可。

1. button.setOnClickListener(this);

2. 添加mainActivity implements OnClickLIstener()實現接口

3. 增長實現接口的方法

public void onCclick(View v){

//參數v 表明的就是當前被點擊的條目 對應的view對象

//下面進行判斷,若是v獲取的id,就是R.id.bt_dail,就算OK

switch(v.getId()){

case R.id.bt_dail:

  //響應按鈕的點擊事件,具體呢就是把上面的那段代碼貼過來,便可

String number = mEditText.getText().toString();

Log.i(tag,number); //這個是說,在運行時,log框裏面有個tag標籤,若是裏面輸出的是MainActivity,遇到電話號碼時候,就輸出了;

Log.i(tag,「匿名內部類」); //這句打印出來就是,調用到匿名內部類時候,打印輸出「匿名內部類」這幾個字。

//撥打電話號碼

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

//android裏面

startActivity(intent);

}

}

方法四:在laytout的佈局xml中,把按鈕的點擊事件,綁定到某個方法上:

1. <Button

android:onClick="dail" />

2. 在MainActivity裏定義dail方法:

public void dail(View view){

//裏面仍是那段代碼,放到這裏來了

String number = mEditText.getText().toString();

Log.i(tag,number); //這個是說,在運行時,log框裏面有個tag標籤,若是裏面輸出的是MainActivity,遇到電話號碼時候,就輸出了;

Log.i(tag,「匿名內部類」); //這句打印出來就是,調用到匿名內部類時候,打印輸出「匿名內部類」這幾個字。

//撥打電話號碼

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

//android裏面

startActivity(intent);

}

 

咱們知道,全部的控件均可以被click,就拿TextView來講,須要在佈局文件中添加兩句話才能夠:

<TextView

android:Onclick = "textview_click"

android:clickable = "true"/>

而後在mainActivity中添加該方法:

public void textview_click(View view){

Log.i(tag,"文本框被點擊了");

}

相關文章
相關標籤/搜索