Android--3种按钮监听

33 篇文章 0 订阅

按键监听实现的三种方法:

  1. 匿名内部类监听按键点击事件
  2. 外部类监听按键点击事件
  3. 接口方式监听按键点击事件

匿名内部类监听按键点击事件
1.先声明一个private Button Btn; (几乎所有的监听都是类似的前两步)
2.再在重写的OnCreate函数里初始化Btn = (Button)findviewByid(R.id.Btn);(几乎所有的监听都是类似的前两步)
3.然后在重写的OnCreate函数里设置按键监听
Btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) { } });

public class MainActivity extends AppCompatActivity{

    private Button Btn;//第一步声明一个按钮

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Btn = (Button) findViewById(R.id.Button);//第二步初始化这个按钮

        //第三步设置监听器      
        Btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
    }
}

外部类监听点击事件
1.前几步都是一样的。
2.重写定义一个外部类,(在工程中重新建一个Activity的那种类)或直接在在本类下写一个外部类。
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {

    v.setAlpha(0.5f);
}

}
3.设置监听函数是不一样的,new的是一个新建的外部类
Btn.setOnClickListener(new MyOnClickListener(){
@Override
public void onClick(View v) {
super.onClick(v);//外部类中的处理
}

public class MainActivity extends AppCompatActivity{

    private Button Btn;//第一步声明一个按钮

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Btn = (Button) findViewById(R.id.Button);//第二步初始化这个按钮

        //第三步设置监听器
        //注意设置的监听器,new的那个类是自己新建的外部类
        //这也是这种方法的由来
        Btn.setOnClickListener(new MyOnClickListener(){
            @Override
            public void onClick(View v) {
                super.onClick(v);
            }
        });
    }
}


/**
*定义的一个专门用于监听处理的外部类
*一般另外建一个Activity类文件,不建议建在同一个Activity类下面
*这个外部类虚拟继承了一个View.OnClickListener
*这个和“接口方式。。”主类继承的是同一个,性质也是一样的
*/
class MyOnClickListener implements View.OnClickListener{
    @Override
    public void onClick(View v) {
        v.setAlpha(0.5f);//设置透明度,即任何被按下的按钮都会透明度降低(通过V来确定具体哪个按钮)
    }
}

接口方式监听按键点击事件
1.先在主类的名前虚拟继承 implements View.OnClickListener
2.并重写方法 OnClick()
3.在重写的OnCreate函数里初始化按键,并声明按键点击事件监听函数
Btn.setOnClickListener((View.OnClickListener) this);(注意与第一种方法的区别)
4. 再在重写的OnClick函数里面利用if(v == Btn )的方式或switch case的方式实现分类处理按键点击事件。

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    //注意!!!该类虚拟继承了一个接口,这也是这种方法的由来
    private Button Btn;//第一步声明一个按钮

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Btn = (Button) findViewById(R.id.Button);//第二步初始化这个按钮

        Btn.setOnClickListener((View.OnClickListener) this);//第三步声明点击监听函数
    }

    /**
    *第四步,重写点击函数
    *个人认为这种方法的最大的优点就是,OnCreate函数里代码要简洁一点
    */
    @Override
    public void onClick(View v) {
     // switch (v.getId()){
//      case R.id.Btn1:
//          Toast.makeText(this,"Btn1被按下",Toast.LENGTH_SHORT).show();
//          break;
//      case R.id.Btn2:
//          Toast.makeText(this,"Btn2被按下",Toast.LENGTH_SHORT).show();
//          break;
//  }
        if(v == Btn){
            Toast.makeText(this,"Btn被按下!",Toast.LENGTH_SHORT).show();
        }else if(v == imageBtn){
            Toast.makeText(this,"imageBtn被按下!",Toast.LENGTH_SHORT).show();
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值