按钮Button的点击事件的四种写法
2017-04-12 09:33
477 查看
以拨打电话为例
1、布局文件
(Button标签中的onClick标签是最后一种方法使用的,在使用其他方法为这个Button注册点击事件的时候不需要这个标签)[activity_dial.xml]<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/et_number" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" /> <Button android:id="@+id/bt_dial" android:onClick="dialPhone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/dial" /> </LinearLayout>
2、Java代码
public class DailActivity extends Activity implements OnClickListener{ private String number = null; private EditText et_number; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); //为Activity设置布局文件 this.setContentView(R.layout.activity_dial); Button btn_dial = (Button) this.findViewById(R.id.bt_dial); et_number = (EditText) this.findViewById(R.id.et_number); //点击事件的几种写法 //1、创建一个内部类的点击事件 //btn_dial.setOnClickListener(new MyOnClickListener()); //2、采用匿名内部类创建点击事件 /* btn_dial.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { callPhone() ; } });*/ //3、让当前的Activity实现点击事件的OnClickListener接口,并实现接口内部为实现的方法 // btn_dial.setOnClickListener(this); } //选中需要打包为一个方法的代码,然后右键单击选中Refactor-->Extra Method这样便可以将一段代码封装为一个方法 private void callPhone() { /** * 在Android系统中Intent表示意图,类似于Windows系统中的start命令,在命令行中输入start * http://www.baidu.com * windows就会为我们打开浏览器,并在地址栏中填入“http://www.baidu.com * ”,Intent也是一样的,它绑定了很多的动作 * 其中打电话这个动作也被绑定到这个Intent中,因此只需要指定Intent需要完成的动作,并指定这个动作需要的数据,然后 * 变可以启动这个动作,当然还可以将自定义的动作绑定到Intent中,然后同样也可以执行这个动作。 */ number = et_number.getText().toString().trim(); // 判断指定的字符串是否为空,这是Android自己提供的一个文本处理类 if (TextUtils.isEmpty(number)) { Toast.makeText(DailActivity.this, "请输入电话号码", Toast.LENGTH_SHORT) .show(); return; } Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); //Url统一资源定位符 Uri统一资源标识符 intent.setData(Uri.parse("tel:" + number)); startActivity(intent); } //4、在布局文件中绑定一个方法使用onClick="MethodName"标签来为这个按钮设置点击事件,内部实现是使用反射来实现的 public void dialPhone(View view) { callPhone(); } public class MyOnClickListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub callPhone(); } } //实现接口内为实现的方法 @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()){ case R.id.bt_dial: callPhone(); break; } } }
3、总结
实现按钮点击事件的四种方法:Button btn_dial = (Button)this.findViewById(R.id.btn_dial);
3.1、自定义一个内部类,让这个内部类实现接口,并实现这个接口中的onClick方法,然后new出这个内部类的一个对象传递到这个按钮的注册点击事件中。
public class MyOnClickListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub callPhone(); } } btn_dial.setOnClickListener(new MyOnClickListener());
3.2、直接使用OnClickListener接口创建一个匿名内部类,并在这个类中实现onClick方法。
btn_dial.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { callPhone() ; } })
3.3、让当前Activity实现OnClickListener接口,并实现这个接口中的onClick方法,然后将代表这个Activity对象的this传递过去。
public class DailActivity extends Activity implements OnClickListener{ ...... //实现接口内为实现的方法 @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()){ case R.id.bt_dial: callPhone(); break; } } } ........ btn_dial.setOnClickListener(this); ....
3.4、在activity_dial.xml布局文件中为这个按钮使用onClick=”methodName”设置点击事件,然后在Activity创建方法,这个方法的方法名正是标签onClick中的内容。
(activity_dial.xml) ... <Button android:id="@+id/bt_dial" android:onClick="dialPhone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/dial" /> ... (DialActivity.java) ... public void dialPhone(View view) { callPhone(); } ...
相关文章推荐
- 安卓按钮点击事件的四种写法
- 安卓Button按钮的四种点击事件
- 【转】Android - Button(按钮)的响应点击事件的4种写法
- Android Button按钮点击事件的四种方式
- Android - Button(按钮)的响应点击事件的4种写法
- Button按钮的几种点击事件的写法
- Android_01_按钮点击事件的四种写法
- 按钮点击事件的四种写法
- Android Button按钮的四种点击事件
- android(2):按钮点击事件的四种写法(装载)
- 点击Button事件的四种写法
- Android-Button点击事件的四种写法
- Android UI控件详解-Button(按钮)点击事件的5种写法
- Android - Button(按钮)的响应点击事件的4种写法
- Android学习笔记(3)——按钮点击注册事件的四种写法
- button按钮监听点击事件外部类写法
- Android学习笔记(一):按钮点击事件的四种写法
- Android中按钮的点击事件的四种写法
- Android点击Button按钮的四种事件监听方法总结
- Android按钮单击事件的四种常用写法总结