一看就会Android之单选按钮和复选框的事件监听

总的来说每一个单选按钮和复选框都有checked()方法来判断是否被选中

为按钮和复选框设置事件监听主要有以下两种:

1:在改变勾选状态时立即触发

2:在点击提交按钮时获取

对于单选按钮(组):

  1. 在改变状态时触发即为单选按钮组设置监听setOnCheckedChangeListener,在重写的onCheckedChanged方法中根据参数checkedId获取被选中的单选按钮,再通过getText()方法获取对应的单选按钮的值,如下:

为单选按钮组RadioGroup添加OnCheckedChangeListener事件监听

RadioGroup sex = (RadioGroup)findViewById(R.id.radioGroup);

sex.setOnCheckedChangeListener(new OnCheckedChangeListener{

@Overrid

public void onCheckedChanged(RadioGroupradioGroup,int checkedId){

       //根据checkedId获取到单选按钮组里面的具体单选按钮

       RadioButton  r = (RadioButton)findViewById(checkedId);

       //获取选中的单选按钮的值

      r.getText();

}

});

  1. 在点击提交按钮或其他按钮时获取

    处理是通过调用单选按钮组对象的getChildCount()方法先获取到单选按钮的个数,然后在该按钮的点击事件中通过for循环,再通过调用单选按钮组对象的getChildAt(int)方法,获取到每一个单选按钮组件对象,并依次遍历该各个按钮进行勾选状态的判断,最后获取到单选按钮对应的值,最后break跳出for循环。

    tijiao.setOnClickListener(new OnClickListener(){

    public void onClick(View v){

      for(inti=0;i<sex.getChildCount();i++){

             RadioButton  r = (RadioButton)sex.getChildAt(i);

                      If(r.isChecked()){

                      String result = r.getText().toString();

                      break;

    }

    }

    }

    });

     

对于复选框:

  1. 在改变状态时触发即为每一个复选框都要添加setOnCheckedChangeListener监听,故可以先创建一个OnCheckedChangeListener状态监听改变对象,然后获取到每一个复选框组件,依次为他们添加此监听对象。

    如下:

private OnCheckedChangeListener  myListener  =  new OnCheckedChangeListener(){

@Overrid

public void onCheckedChanged(CompoundButton buttonView,Boolean isChecked){

       //根据checkedId获取到单选按钮组里面的具体单选按钮

       If(isChecked){

               //获取复选框对应的值

               String str =buttonView.getText().toString();

}

}

}

  1. 在点击提交按钮或其他按钮时获取

    此时是在提交等按钮的单击事件中通过一系列的if语句调用每个复选框的isChecked()方法来判断每一个复选框的状态,从而获取到用户所勾选复选框的拼接字符串。like1,like2,like3都是获取的三个复选框组件。

    tijiao.setOnClickListener(new OnClickListener(){

    public void onClick(View v){

    String str = “”;

    If(like1.isChecked()){

    str += like1.getText().toString()+”|”;

    }

    If(like2.isChecked()){

    str += like2.getText().toString()+”|”;

    }

    If(like3.isChecked()){

    str += like3.getText().toString()+”|”;

    }

    String result = str;

    }

    });


  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智玲君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值