全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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  # 点击事件写法  # 按钮点击事件  # 安卓点击事件4种写法  # Android中父View和子view的点击事件处理问题探讨  # Android中捕获TTextView文本中的链接点击事件方法  # 简单讲解Android开发中触摸和点击事件的相关编程方法  # Android如何防止多次点击事件  # Android中捕捉menu按键点击事件的方法  # Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新  # Android 中ListView的Item点击事件失效的快速解决方法  # Android开发在轮播图片上加入点击事件的方法  # android中在Activity中响应ListView内部按钮的点击事件的两种方法  # 详解Android中点击事件的几种实现方式  # 绑定  # 种方法  # 类中  # 的是  # 为父  # 重写  # 修饰符  # 四种  # 大家多多  # 新建一个  # Button  # public  # extends  # Activity  # java  # pre  # class  # brush  # view  # MainActivity 


相关文章: 制作网站外包平台,自动化接单网站有哪些?  建站之星如何优化SEO以实现高效排名?  大连 网站制作,大连天途有线官网?  Android滚轮选择时间控件使用详解  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  javascript中的try catch异常捕获机制用法分析  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何在云虚拟主机上快速搭建个人网站?  如何通过FTP空间快速搭建安全高效网站?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何快速搭建高效简练网站?  ,sp开头的版面叫什么?  开封网站制作公司,网络用语开封是什么意思?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何通过西部建站助手安装IIS服务器?  ,网站推广常用方法?  网站专业制作公司有哪些,做一个公司网站要多少钱?  建站之星安装失败:服务器环境不兼容?  如何确保FTP站点访问权限与数据传输安全?  如何挑选优质建站一级代理提升网站排名?  常州自助建站工具推荐:低成本搭建与模板选择技巧  建站之星免费模板:自助建站系统与智能响应式一键生成  制作网站的软件免费下载,免费制作app哪个平台好?  威客平台建站流程解析:高效搭建教程与设计优化方案  七夕网站制作视频,七夕大促活动怎么报名?  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何在景安服务器上快速搭建个人网站?  网站制作说明怎么写,简述网页设计的流程并说明原因?  北京的网站制作公司有哪些,哪个视频网站最好?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  网站网页制作专业公司,怎样制作自己的网页?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  高端云建站费用究竟需要多少预算?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  金*站制作公司有哪些,金华教育集团官网?  如何快速使用云服务器搭建个人网站?  建站之星代理费用多少?最新价格详情介绍  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何通过可视化优化提升建站效果?  微信推文制作网站有哪些,怎么做微信推文,急?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  建站之星安装后如何配置SEO及设计样式?  如何通过虚拟主机快速搭建个人网站?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。