Android onClick按钮单击事件的四种常用写法

这里使用四种onClick单击事件,来实现电话拔号器的DEMO。

XML文件

<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" android:ems="10" android:id="@+id/et_number" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/dial_number" android:id="@+id/bt_dial" android:layout_below="@id/et_number" android:layout_alignRight="@id/et_number" android:layout_alignEnd="@id/et_number" />

第一种、匿名内部类:

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()方法:

<Button android:onClick="dialPhoneMethod" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/dial_number" android:id="@+id/bt_dial" android:layout_below="@id/et_number" android:layout_alignRight="@id/et_number" android:layout_alignEnd="@id/et_number" /> 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测试的时候。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

时间: 2024-09-22 16:20:34

Android onClick按钮单击事件的四种常用写法的相关文章

Android按钮单击事件的四种常用写法总结_Android

很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值. xml文件代码如下: <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_conte

Android按钮单击事件的四种常用写法总结

很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值. xml文件代码如下: <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_conte

Android代码规范----按钮单击事件的四种写法

[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法.   一.第一种写法:在XML文件中指定(很少用) 在XML文件中显式指定控件的onClick属性,点击按钮时会利用反射的方式调用对应Activity中的onClick()方法. (1)xml文件代码如下: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android全局监控click事件的四种方式(小结)

本文主要给大家分享如何在全局上去监听 click 点击事件,并做些通用处理或是拦截.使用场景可能就是具体的全局防快速重复点击,或是通用打点分析上报,用户行为监控等.以下将以四种不同的思路和实现方式去监控全局的点击操作,由简单到复杂逐一讲解. 方式一,适配监听接口,预留全局处理接口并作为所有监听器的基类使用 抽象出公共基类监听对象,可预留拦截机制和通用点击处理,简要代码如下: public abstract class CustClickListener implements View.OnCli

Android Button点击事件的四种实现方法

Android中Button四种点击事件实现方式,具体内容如下 1.Xml添加监听属性,这里添加的doClick. <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="doClick" android:text="XML添加d

android为按钮添加事件的三种方法

 Android中为按钮添加事件一般有三种方法,这里总结一下,当然其实这完全是java基础内容. 1.内部类: ? 代码片段,双击复制   btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { ... } });   这种方法适合只为单个按钮添加事件,当按钮较多的时候,就要重复写onClick()方法,这样不是最佳的在做法. 2.创建独立的类: ? 代码片段,双击复制   btn.setOnCli

Android中activity跳转按钮事件的四种写法_Android

具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i

Android中activity跳转按钮事件的四种写法

具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i

jquery easyui-为什么我的按钮单击事件要触发两次

问题描述 为什么我的按钮单击事件要触发两次 <table id="mingxi"></table> <div id="div_chongzhi_shenqing" align="center"> <div style=" margin-top:50px"> 充值金额:<input type="text" id="chongzhi_money_s