实现按钮响应的几种方法

注:按钮的声明省略
1. 内部类监听点击事件

 button.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View arg0) {
              //执行的操作
      }
    });

//注:独立类实现方式与这个原理相同,只是匿名类实例化了
e.g:
button.setOnClickListener( myOnClickListener);
OnClickListener myOnClickListener=new  OnClickListener(){
   @Override
   public void onClick(View arg0) {
              //执行的操作

}

2.外部类监听点击事件
优点:多个按钮实现相同功能,可以减少代码冗余

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1=(Button) findViewById(R.id.button1);
        bt2=(Button) findViewById(R.id.button2);
        bt1.setOnClickListener(new myOnClickListener(){
               @Override
               public void onClick(View v){
                super.onClick(v);
                Toast.makeText(MainActivity.this,"这是按钮1",Toast.LENGTH_LONG).show();});
        bt2.setOnClickListener(new myOnClickListener(){
            @Override
            public void onClick(View v){
             super.onClick(v);
             Toast.makeText(MainActivity.this,"这是按钮2",Toast.LENGTH_LONG).show();}
});
    }
    public class myOnClickListener implements OnClickListener {
     @Override
     public void onClick(View arg0) {
      // TODO Auto-generated method stub
      arg0.setAlpha(0.5f); //这是共同执行的部分(按钮变暗)
     }
    }

3.通过接口方式实现点击事件
创建的类要继承OnClickListener接口:

public class MainActivity extends Activity implements OnClickListener{
                   ---------{
                   ---------
                   bt1.setOnClickListener(this);
                   bt2.setOnClickListener(this);
                                       ....
                                       ....
    }            

@Override
     public void onClick(View v) {

switch (v.getId()) {
         case R.id.buttonA: 
          //......
          break;
         case R.id.buttonB:
          // ......
          break;
      }
     }
}

4.指定button 的onClick属性方式
在layout文件中 android:onClick="onButtonClick"
在Activity中实现onButtonClick方法:

public void onButtonClick(View v){  
      //操作
   }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值