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

 

 

技术分享 技术分享


 

第一种方法是使用点击监听器来实现(代码中注释掉的部分):这种方法要在初始化的函数中将按钮绑定在点击监听器上(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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。