欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-12-03 10:27:40
android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让mainactivity实现view.onclicklist...

android中点击事件的四种写法

  1. 使用内部类实现点击事件
  2. 使用匿名内部类实现点击事件
  3. 让mainactivity实现view.onclicklistener接口
  4. 通过布局文件中控件的属性

第一种方法:使用内部类

基本步骤如下:

1. 新建一个myonclicklistener类并实现view.onclicklistener接口

2. 重写view.onclicklistener接口中的onclick(view view)方法

3. 给button绑定一个监听器,并监听一个点击事件

示例代码如下:

public class mainactivity extends activity {
private button btn;
@override
protected void oncreate(bundle savedinstancestate) {
  //必须调用一次父类的该方法,因为父类中做了大量的工作
  super.oncreate(savedinstancestate);
  //给当前的activity绑定一个布局
  setcontentview(r.layout.activity_main);
  //通过调用父类的findviewbyid方法,根据控件的id获取控件对象
  btn = (button) findviewbyid(r.id.button);
  //使用内部类(实现onclicklistener)给button绑定一个监听器,监听点击事件
  btn.setonclicklistener(new myonclicklistener());
}

/*注意:这里的onclicklistener是android.view.view包下的,
   不是android.content.dialoginterface包下的。*/
class myonclicklistener implements view.onclicklistener{
  @override
  public void onclick(view v) {
    system.out.println("使用内部类实现点击事件");
  }
}

第二种方法:使用匿名内部类

基本步骤如下:

1. 给button绑定一个监听器,并监听一个点击事件

2. 在setonclicklistener方法中直接传入一个onclicklistener对象,并实现onclick方法

示例代码如下:

public class mainactivity extends activity {
private button btn;
@override
protected void oncreate(bundle savedinstancestate) {
  //必须调用一次父类的该方法,因为父类中做了大量的工作
  super.oncreate(savedinstancestate);
  //给当前的activity绑定一个布局
  setcontentview(r.layout.activity_main);
  //通过调用父类的findviewbyid方法,根据控件的id获取控件对象
  btn = (button) findviewbyid(r.id.button);
  //使用匿名内部类(实现onclicklistener)给button绑定一个监听器,监听点击事件
  btn.setonclicklistener(new onclicklistener() {
    @override
    public void onclick(view v) {
      system.out.println("使用匿名内部类实现点击事件");
      }
    });
  }
}

第三种方法:让mainactivity直接实现view.onclicklistener接口

基本步骤如下:

1. 让mainactivity直接实现view.onclicklistener

2. 在mainactivity类中重写onclick方法

3. 给button绑定一个监听器,并监听一个点击事件。

注:此时setonclicklistener传入的是this

示例代码如下:

public class mainactivity extends activity implements onclicklistener {
private button btn;
@override
protected void oncreate(bundle savedinstancestate) {
  //必须调用一次父类的该方法,因为父类中做了大量的工作
  super.oncreate(savedinstancestate);
  //给当前的activity绑定一个布局
  setcontentview(r.layout.activity_main);
  //通过调用父类的findviewbyid方法,根据控件的id获取控件对象
  btn = (button) findviewbyid(r.id.button);
  //使用mainactivity实现onclicklistener接口给button绑定一个监听器,监听点击事件
  //注:此时setonclicklistener传入的是this
  btn.setonclicklistener(this);
}
//实现onclicklistener接口中的onclick方法
@override
public void onclick(view v) {
  system.out.println("让mainactivity实现view.onclicklistener接口从而实现点击事件");
  }
}

第四种方法:通过布局文件中控件的属性

基本步骤如下:

1. 在activity_main.xml中给button控件添加android:onclick=”action”属性

2. 在activity中实现action方法,action方法必须满足如下三个条件:

(1) 方法的访问修饰符必须是public

(2)方法的名称必须跟android:onclick=”action” 中的名称完全一致

(3)形参必须是view类型

示例代码如下:

public class mainactivity extends activity {
private button btn;
@override
protected void oncreate(bundle savedinstancestate) {
  //必须调用一次父类的该方法,因为父类中做了大量的工作
  super.oncreate(savedinstancestate);
  //给当前的activity绑定一个布局
  setcontentview(r.layout.activity_main);
  //通过调用父类的findviewbyid方法,根据控件的id获取控件对象
  btn = (button) findviewbyid(r.id.button);
  system.out.println("button 是"+btn);
}
//利用反射给button绑定一个监听器,监听点击事件
/**
 * 1:方法的访问修饰符必须是public
 * 2:方法的名称必须跟android:onclick="call" 中的名称完全一致
 * 3:形参必须是view类型
 * 注:形参view其实就是button对象本身
 * */
public void call(view view ){
  system.out.println("view 是"+view);
  system.out.println("通过反射实现点击事件");
  }
}

友情提醒:形参view其实就是button对象本身

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。