博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[安卓] 2、使用2中方法做按钮监听和图片按钮使用
阅读量:6575 次
发布时间:2019-06-24

本文共 3579 字,大约阅读时间需要 11 分钟。

 

 

 


 

第一种方法是使用点击监听器来实现(代码中注释掉的部分):这种方法要在初始化的函数中将按钮绑定在点击监听器上(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      @Override17      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      @Override28      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 @Override43 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 @Override51 public void onClick(View v) {52 tv.setText("确定按钮触发事件!");53 }54 });55 btn_cancel.setOnClickListener(new OnClickListener() {
// 将btn_cancel按钮绑定在点击监听器上56 @Override57 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             @Override11             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!

 

 

 

  

本文链接:

更多精彩:

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

你可能感兴趣的文章
玩转HTML5移动页面
查看>>
Please review your Gradle project setup in the android/ folde
查看>>
2019春第六周作业
查看>>
紫书 例题 10-14 UVa 12034(组合数+递推)
查看>>
设计模式学习每天一个——Decorator模式
查看>>
.NET程序集(Assembly)
查看>>
2017年浙江中医药大学大学生程序设计竞赛(重现赛)D - CC的神奇背包
查看>>
HDU 3416 Marriage Match IV
查看>>
原创:2016.4.25-2016.5.1 C# informal essay and tittle_tattle
查看>>
mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存
查看>>
从今天起,开源中国
查看>>
带左右按钮、 渐隐渐现 轮播图
查看>>
body标签中的相关标签
查看>>
css3 animate 和关键帧 @-webkit-keyframes
查看>>
指向结构体变量的指针变量
查看>>
文字链接颜色设置
查看>>
ChannelHandler揭秘(Netty源码死磕5)
查看>>
图片转流
查看>>
Jessica's Reading Problem
查看>>
jQuery实现照片墙,附步骤详解
查看>>