当前位置: 移动技术网 > IT编程>移动开发>Android > Android中点击事件的四种写法详解

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

美女扑克牌小游戏,黑牛花生牛奶,北京棚户区改造

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对象本身

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网