目录

1.在布局中指定onClick属性

2.使用匿名内部类

3.在当前Activity中实现OnClickListener接口

4.创建内部类


1.在布局中指定onClick属性

布局代码

 <Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button1"
android:onClick="click"
/> <Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button2"
android:layout_below="@+id/btn1"
android:onClick="click"
/>

逻辑代码

    public void click(View v){
if(v.getId()==R.id.btn1)
Toast.makeText(this,"button1 is clicked",Toast.LENGTH_SHORT).show();
if(v.getId()==R.id.btn2)
Toast.makeText(this,"button2 is clicked",Toast.LENGTH_SHORT).show();
}

2.使用匿名内部类

public class MainActivity extends AppCompatActivity {

    private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.buttonclick);
//通过findViewById()初始化控件
btn1=(Button) findViewById(R.id.btn1);
btn2=(Button) findViewById(R.id.btn2);
//匿名内部类
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn1.setText("button1 is clicked");
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn2.setText("button2 is clicked");
}
});
}
}

3.在当前Activity中实现OnClickListener接口

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.buttonclick);
//通过findViewById()初始化控件
btn1=(Button) findViewById(R.id.btn1);
btn2=(Button) findViewById(R.id.btn2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}
public void onClick(View v){
if(v.getId()==R.id.btn1){
Toast.makeText(this,"button1 is clicked",Toast.LENGTH_SHORT).show();
}
if(v.getId()==R.id.btn2){
Toast.makeText(this,"button2 is clicked",Toast.LENGTH_SHORT).show();
}
}
}

4.创建内部类

public class MainActivity extends AppCompatActivity {

    private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.buttonclick);
//通过findViewById()初始化控件
btn1=(Button) findViewById(R.id.btn1);
btn2=(Button) findViewById(R.id.btn2);
//传入实现了OnClickListener接口的类的对象
btn1.setOnClickListener(new MyClickListener());
btn2.setOnClickListener(new MyClickListener());
}
//创建内部类实现OnClickListener接口
private class MyClickListener implements View.OnClickListener{
@Override
public void onClick(View v){
if(v.getId()==R.id.btn1)
btn1.setText("button1 is clicked");
if(v.getId()==R.id.btn2)
btn2.setText("button2 is clicked");
}
}
}

Android 按钮响应事件的几种方式的更多相关文章

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

    这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下     很多学习Android程序设计的人都会发现每个人对代码的 ...

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

    这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下 很多学习Android程序设计的人都会发现每个人对代码的写法都有 ...

  3. android点击事件的四种方式

    android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...

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

    很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可 ...

  5. [Android] 按钮单击事件的五种写法

    在平时学习安卓的过程中,不论是看视频还是看博客,我发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.所以我想把这些写法总结一下,比较下各种写法的优劣,希望可以让自己可以灵 ...

  6. 界面跳转+Android Studio Button事件的三种方式

    今天学习界面跳转 java类总是不能新建成功 看了网上教程 (20条消息) 关于android studio无法创建类或者接口问题的解决方法_qq_39916160的博客-CSDN博客 可以新建了 但 ...

  7. Android实现双击事件的两种方式

    Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...

  8. Android_安卓为按钮控件绑定事件的五种方式

    一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...

  9. android中跨进程通讯的4种方式

    转自:http://blog.csdn.net/lyf_007217/article/details/8542359 帖子写的很好.看来一遍,试了一遍,感觉太有意义.必须转过来! android中跨进 ...

随机推荐

  1. html的空格和换行显示

    一.HTML 代码中的所有连续的空格或空行(换行)都会被显示为一个空格,不管是内容还是标签之间. 二.当我们想让它们在同一行连续显示时,就让所有的代码之间没有空格,也不要换行. 三.当我们想要显示连续 ...

  2. Oracle课程档案,第二天

    salary:工资 order by:排序 desc:降序 hire:雇佣 单行函数 一周有七天 一月不一定只有30天 trunc:截取 dual:空表 last:最后 month:月份 round: ...

  3. ifcfg命令

    ifcfg命令是一个bash脚本程序,用来设置Linux中的网络接口参数. 语法 ifcfg(参数) 参数 网络接口:指定要操作的网络接口: add/del:添加或删除网络接口上的地址: ip地址:指 ...

  4. STL算法总览(部分)

    下图将所有的STL算法(以及一些非标准的SGI STL算法)的名称.用途.文件分布等等,依算法名称的字母顺序列表.表格中凡是不在STL标准规格之内的SGI专属算法,都以 * 加以表示. 注:以下“质变 ...

  5. [redis] <<The little Redis book>>的读书笔记

    <<The Little Redis Book>> 请右键点击在新窗口打开,可按原始大小查看.

  6. python_代码中调用java类

    1. 安装jpype (python调用java class文件用) 1.1. 自动安装:pip install jpype1 1.2. 手动方式安装jpype1 安装wheel:pip instal ...

  7. 原生ajax函数封装

    原生ajax函数 function ajax(json){ json=json || {}; if(!json.url){ return; } json.data=json.data || {}; j ...

  8. array 和 alloc init 以及 new 区别

    当你使用new.alloc或copy方法创建一个对象时,该对象的引用计数器值为1.当不再使用该对象时,你要负责向该对象发送一条release或autorelease消息.这样,该对象将在其使用寿命结束 ...

  9. python进阶之 网络编程

    1.tcp和udp协议的区别 TCP协议 面向连接\可靠\慢\对传递的数据的长短没有要求 两台机器之间要想传递信息必须先建立连接 之后在有了连接的基础上,进行信息的传递 可靠 : 数据不会丢失 不会重 ...

  10. word之常用功能

    0.word区域:标题栏.快速访问工具栏.功能区.功能按钮.导航窗口.编辑区.水平垂直滑动条.状态栏 1.更改office主题.文件---帐户---office主题.(传统白色.浅灰色.深灰色) 2. ...