Android中对按钮的监听方法总结

Android开发中,对按键的监听方法有很多种:

第一种:也是我经常使用的一种,先让activity实现监听的接口

public class DeviceControlActivity extends Activity implements View.OnClickListener
然后我就可以对按钮进行这样的操作

time6= (TextView) findViewById(R.id.ershisixiaoshi);
time6.setOnClickListener(this);
然后让它实现接口中的方法

@Override
public void onClick(View v) {
switch (v.getId()){
    case R.id.sanshi://点击了30分钟
这种方法感觉比较好,可以将所有的监听都放到一起,查看代码的时候也容易找到,同时代码量也不大

第二种:这种我用的比较少,因为代码量有点多

就是将每一个按钮都要进行new一个OnClickListener

time6.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //写点击后执行的方法
    }
});
这种方法就是麻烦了点,而且每个按钮都这么写,要是代码多了也不好找

第三种这种方法以前经常用,也是蛮好的,但是每个按钮都要在布局文件中加一句

android:onClick="doClick"
这样子在代码中就可以这样写了

public void doClick(View v) {
    Intent intent=new Intent();
    switch(v.getId()){
        case R.id.wendu:
这样子就可以把所有的按钮的监听都集中在doClick这个方法中,也容易找到,不过布局文件中的onClick要写成一致哦,那肯定有人会说,要是没有写成一致,那怎么办?那就是方法四咯

第四种这种方法个人感觉是最不好了

这种方法和第三种有点相似,但是我感觉完全没有第三种方法好用,不过还是可以了解下,万一你要看别人写的代码,但是那个变态偏偏用这种方法写的监听,估计你就看不懂了,一脸懵逼,哈哈

这种方法也是要在布局文件中加一句代码,如下:

android:onClick="getNTCAll"
或者这样

android:onClick="getCheckState"
每一个按钮都加一个onClick,后面的那个名字就是你在代码中的方法名,注意不止写doClick一个哦,方法名随便你自己取的,然后在代码中你就要这样写了

比如你对布局文件中的按钮写的onClick中的方法名是getNTCALL,那你在代码中的方法就是

/**
 * 全部NTC校准信息按钮的监听
 * @param view
 */
public void getNTCAll(View view) {
    txtShow.setText("");
    byte[] val;
    val = Tools.hexStringToByteArray("210302");
    val = PackData(val);
    SendValToBluetooth(val);
}
如果你写的是getCheckState,那你在代码中的方法就是

/**
 * 查询串口状态按钮的监听
 * @param view
 */
public void getCheckState(View view) {
    byte[] val;
    val = Tools.hexStringToByteArray("FAF50721078B27");
    SendValToBluetooth(val);
}
这种方法的好处也是有的,那就是你不要给这个按钮进行初始化,也就不要啥findviewbyId了,甚至你都不用给布局文件中的按钮给一个id,不初始化给id干嘛用,萝卜白菜各有所爱,看你自己喜欢哪种咯!!!

可能还有其他监听的方法,不过我就知道这么几种,望各位能够指导下补全!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值