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测试的时候。

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

(0)

相关推荐

  • Android中button实现onclicklistener事件的两种方式

    复制代码 代码如下: package com.demos; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class GetScreenActivity extends Activity { private Button fi

  • 详谈Android中onTouch与onClick事件的关系(必看)

    这几天遇到点关于Android的触摸事件相关的,还跟onClick有关,暂且记下: LinearLayout分别设置了onTouchListener,onClickListener,onLongClickListener及onTouchEvent回调 1.在屏幕上触摸之后基本的执行流程如下: onTouch,action=0 onTouchEvent,action=0 onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouchE

  • Android使用TextView,设置onClick属性无效的解决方法

    Android在布局文件中为View提供了onClick属性,使用方法如下: <TextView android:id="@+id/user" android:layout_width="@dimen/px_171" android:layout_height="fill_parent" android:onClick="iconClickListener" android:clickable="true&qu

  • Android响应事件onClick方法的五种实现方式小结

    在Android的开发中,对于点击事件的OnClickListener有下面四种实现方式,可以根据实际场景的需要选择合适的用法.下面以Button按钮来举例说明. 方法一: 适合场景:任何场景都通用,但对于一个Activity中要是有多个控件要实现onClick方法就会显得代码冗余. Button bt_Demo = (Button)findViewById(R.id.bt_Demo); bt_Demo.setOnClickListener(new OnClickListener() { @Ov

  • Android ListView 子控件onClick正确获取position的方法

    在实际开发中,我们有时候不仅需要响应ListView的onItemClick,还需要响应其子控件的点击事件,这个时候我们就会 发现,由于复用等原因,如果直接在子控件的onClick事件中调用getView()中的position,会出现数据或显示错位的问 题,原因就是position的值出现了重复或不准确,解决这个问题的方法是,在adapter每次加载数据的时候,为需要点击 的控件设置一个tag值,这个tag值就设置为当前这个控件对应的position,然后在点击事件中gettag(),获取这个

  • Android ButtonOnClick事件的写法总结

    Android ButtonOnClick事件的写法总结 假设layout里有三个Button吧,id分别是 button_1 ,button_2 , button_3 之前一直都知道有两种onClick写法: button_1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) { //在这里添加点击事件 } }); 第二种: button_2.setOnClickListener(liste

  • Android onClick方法与setOnClickListener方法对比

    Android onClick 与 setOnClickListener区别 为Android Widgets添加点击事件处理函数又两种方法,一个是在Xml文件中添加onClick属性,然后在代码中添加对应的函数.另一个是直接在代码中添加setOnClickListener函数.两者什么区别呢?以Button控件为例讲解一下. 方法一 在Xml中添加onClick属性 <RelativeLayout xmlns:android="http://schemas.android.com/apk

  • 三种Android单击事件onclick的实现方法

    onclick事件的定义方法,分为三种,分别为在xml中进行指定方法:在Actitivy中new出一个OnClickListenner():实现OnClickListener接口三种方式. 代码分别如下: 1. xml指定onclick事件,这种方式比较适用于指定的button,能使java代码相对简化一些: xml文件中: <span style="color:#333333;"><Button android:text="Button03" a

  • Android 布局中的android:onClick的使用方法总结

    Android 布局中的android:onClick的使用方法总结 Android布局中的 android:onClick="..."属性设置点击时从上下文中调用指定的方法.该属性值和要调用的方法名称完全一致.一般在Activity定义符合如下参数和返回值的函数并将方法名字符串指定为该属性值即可: public void onClickButton(View view) android:onClick="onClickButton" 功能类似于Button的监听器

  • 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:l

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

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

  • 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全局监控click事件的四种方式(小结)

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

  • 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

  • Android中点击事件的四种写法详解

    Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法:使用内部类 基本步骤如下: 1. 新建一个MyOnClickListener类并实现View.OnClickListener接口 2. 重写View.OnClickListener接口中的OnClick(View view)方法 3. 给Button绑定一个监听器,并监听一个点击事件 示例代码如下

  • android studio按钮监听的5种方法实例详解

    1.匿名内部类 public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn1 = fin

  • Unity UGUI 按钮绑定事件的 4 种方式汇总

    UGUI 可视化创建以及关联事件很方便, 动态创建可以利用创建好的 Prefab 进行实例化, 只是在关联事件上有些复杂, 本文总结了几种给按钮绑定事件的关联方式. 1. 可视化创建及事件绑定 Step 1 : 通过 Hierarchy 面板创建 UI > Button. Step 2 : 创建一个脚本 TestClick.cs, 定义了一个 Click 的 public 方法. Step 3 : 选中 Hierarchy 中的 Button, Add Component 脚本 TestClic

  • Android编程实现获取图片资源的四种方法

    本文实例讲述了Android编程实现获取图片资源的四种方法.分享给大家供大家参考,具体如下: 1. 图片放在sdcard中: 复制代码 代码如下: Bitmap imageBitmap = BitmapFactory.decodeFile(path)//path 是图片的路径,跟目录是/sdcard 2. 图片在项目的res文件夹下面 //得到application对象 ApplicationInfo appInfo = getApplicationInfo(); //得到该图片的id(name

  • jQuery绑定事件的四种方式介绍

    jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都有哪些. jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off.在开始看他们之前 一:bind(type,[data],function(eventObject)) bind是使用频率较高的一

随机推荐