第一种方法是使用点击监听器来实现(代码中注释掉的部分):这种方法要在初始化的函数中将按钮绑定在点击监听器上(23,24)btn_ok.setOnClickListener(this);。然后处理统一写在抽象函数onClick(View v) 中,并用v == btn_ok来判别是哪一个按钮的点击。(28~34)

第二种方法是使用内部类实现按键监听,具体如下(这个看起来要代码多一点,各个处理是单独的)

 1 package com.himi.button;//包路径
 2 //import导入类库
 3
 4 import android.app.Activity;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.view.View.OnClickListener;
 8 import android.widget.Button;
 9 import android.widget.TextView;
10
11 /* 使用点击监听器接口进行监听
12  public class MainActivity extends Activity implements OnClickListener {//使用点击监听器
13      private Button btn_ok, btn_cancel;
14      private TextView tv;
15
16      @Override
17      public void onCreate(Bundle savedInstanceState) {
18          super.onCreate(savedInstanceState);
19          setContentView(R.layout.main);
20          btn_ok = (Button) findViewById(R.id.btn_ok);
21          btn_cancel = (Button) findViewById(R.id.btn_cancel);
22          tv = (TextView) findViewById(R.id.tv);
23          btn_ok.setOnClickListener(this);//将btn_ok按钮绑定在点击监听器上
24          btn_cancel.setOnClickListener(this);//将btn_cancel按钮绑定在点击监听器上
25      }
26
27      @Override
28      public void onClick(View v) {//使用监听器就要重写其抽象函数
29          if (v == btn_ok) {
30              tv.setText("确定按钮触发事件!");
31          } else if (v == btn_cancel) {
32              tv.setText("取消按钮触发事件!");
33          }
34     }
35  }
36  */
37 //内部类实现按键监听
38 public class MainActivity extends Activity {// 使用点击监听器
39     private Button btn_ok, btn_cancel;
40     private TextView tv;
41
42     @Override
43     public void onCreate(Bundle savedInstanceState) {
44         super.onCreate(savedInstanceState);
45         setContentView(R.layout.main);
46         btn_ok = (Button) findViewById(R.id.btn_ok);
47         btn_cancel = (Button) findViewById(R.id.btn_cancel);
48         tv = (TextView) findViewById(R.id.tv);
49         btn_ok.setOnClickListener(new OnClickListener() {// 将btn_ok按钮绑定在点击监听器上
50             @Override
51             public void onClick(View v) {
52                 tv.setText("确定按钮触发事件!");
53             }
54         });
55         btn_cancel.setOnClickListener(new OnClickListener() {// 将btn_cancel按钮绑定在点击监听器上
56             @Override
57             public void onClick(View v) {
58                 tv.setText("取消按钮触发事件!");
59             }
60         });
61     }
62
63 }


理解了上面的下面的图片按钮也就很简单啦:如下第9行可见我这里用的不是鼠标的点击监听了,而是触屏监听。其中根据触屏事件来更换ImageButton的背景来实现上述效果。这里的图片资源是存起来的,通过调用getResources().getDrawable(R.drawable.xxx)来获取资源。

 1 public class MainActivity extends Activity {
 2     private ImageButton Ibtn;
 3     @Override
 4     public void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.main);
 7         Ibtn = (ImageButton)findViewById(R.id.imageBtn);
 8         //为图片按钮添加触屏监听
 9         Ibtn.setOnTouchListener(new OnTouchListener() {
10             @Override
11             public boolean onTouch(View v, MotionEvent event) {
12                 //用户当前为按下
13                 if(event.getAction()==MotionEvent.ACTION_DOWN){
14                     //设置图片按钮背景图
15                     Ibtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.press));
16                 //用户当前为抬起
17                 }else if(event.getAction()==MotionEvent.ACTION_UP){
18                     Ibtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.nopress));
19                 }
20                 return false;
21             }
22         });
23     }
24 }

注意:这里的按钮是ImageButton!

本文链接:http://www.cnblogs.com/zjutlitao/p/4229564.html

更多精彩:http://www.cnblogs.com/zjutlitao

本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/4229564.html,如需转载请自行联系原作者

[安卓] 2、使用2中方法做按钮监听和图片按钮使用相关推荐

  1. Android 关于ListView中按钮监听的优化问题(方法二)

    关于ListView中按钮监听的优化问题(方法一)地址: http://www.cnblogs.com/steffen/p/3951901.html 之前的方法一,虽然能够解决position的传递, ...

  2. java 多个监听_​Java中使用for循环对多个Jbutton按钮监听

    Java中Jbutton按钮监听,当多个按钮做的事差不多的时候是可以用for循环的(比如计算器1-9)省事省力. 监听时变量只能是final或者static,不过这些在for循环中明显不行,所以,就在 ...

  3. java 多个监听_java中监听一个客户端怎么做?监听多个怎么做?

    随着时代的不断进步与发展,人们对于科学技术的使用也越来越普遍化.人们都开始自己学习编程语言以更好的适应时代的发展.今天就来为大家介绍一下,java中监听一个客户端怎么做?监听多个怎么做?一起来看看吧. ...

  4. Android耳机线控详解,蓝牙耳机按钮监听(仿酷狗线控效果)

    转载请注明出处:http://blog.csdn.net/fengyuzhengfan/article/details/46461253 当耳机的媒体按键被单击后,Android系统会发出一个广播,该 ...

  5. 关于按钮监听和键盘监听冲突问题

    package gui; //创建一个匿名类实现ActionListener接口,当按钮被点击时,actionPerformed方法就会被调用 //增加按钮监听 //增加键盘监听 //键盘监听器: K ...

  6. 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用

    转载:http://blog.csdn.net/5iasp/article/details/37054171 谢谢博主 ======================================== ...

  7. Android 开发中的View事件监听机制

    在开发过程中,我们常常根据实际的需要绘制自己的应用组件,那么定制自己的监听事件,及相应的处理方法是必要的.我们都知道Android中,事件的监听是基于回调机制的,比如常用的OnClick事件,你了解它 ...

  8. java gui 监听组合键,Java之GUI按钮监听事件ActionListener

    /** * ActionListener:按钮监听事件 * @author Administrator */ public class ActionListenerDemo{ public stati ...

  9. addEventListener() 方法,事件监听

    addEventListener() 方法,事件监听 你可以使用 removeEventListener() 方法来移除事件的监听. 语法 element.addEventListener(event ...

最新文章

  1. java resources目录 编码_关于Java项目读取resources资源文件路径
  2. LeetCode 2141. 同时运行 N 台电脑的最长时间(二分查找)
  3. Python eval 与 exec 函数的区别 - Python零基础入门教程
  4. 再厉害的魔术也比不上真正的redux
  5. 前端校验rules写法:
  6. 添加内核驱动模块(7)(mydriver.c+ Konfig+Makefile )
  7. IP数据包格式、ICMP、ARP
  8. Tomcat8的下载、安装、配置
  9. Java面试复习体系总结(2021版,持续更新)
  10. bat——批量删除文件文件夹
  11. win11禁用内置的administrator本地帐户
  12. 情人节程序员用HTML网页表白【制作属于我们的爱情相册网页】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  13. 腾讯位置大数据中区域热力图数据的数据解析
  14. 【缓存】@CacheEvict
  15. emacs 启动页面定制
  16. 电气火灾监控系统在某市新能源有轨电车示范线工程案例
  17. 18.play依赖管理
  18. 基于QT的在线打字练习软件助手(C/S模型)
  19. Python 使用numpy报错:runtimeError: package fails to pass a sanity check解决方法
  20. 使用GDAL/OGR操作Postgresql数据库

热门文章

  1. MyEclipse注册码
  2. iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= java.lang.Integer,方法的返回值就是int)
  3. tomcat端口被占用问题完美解决方案!
  4. 使用JavaScript(jQuery或Vanilla)选中/取消选中复选框?
  5. 2D阵列中的峰值检测
  6. Win11如何开启聚焦功能?Win11开启聚焦功能的方法
  7. spring cloud微服务之间调用Feign
  8. VMware-workstation安装手册
  9. VMware Mac 全屏问题
  10. 蓝牙:协议/服务复用(PSM)