总的来说每一个单选按钮和复选框都有checked()方法来判断是否被选中
为按钮和复选框设置事件监听主要有以下两种:
1:在改变勾选状态时立即触发
2:在点击提交按钮时获取
对于单选按钮(组):
-
在改变状态时触发即为单选按钮组设置监听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();
}
});
-
在点击提交按钮或其他按钮时获取
处理是通过调用单选按钮组对象的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;
}
}
}
});
对于复选框:
-
在改变状态时触发即为每一个复选框都要添加setOnCheckedChangeListener监听,故可以先创建一个OnCheckedChangeListener状态监听改变对象,然后获取到每一个复选框组件,依次为他们添加此监听对象。
如下:
private OnCheckedChangeListener myListener = new OnCheckedChangeListener(){
@Overrid
public void onCheckedChanged(CompoundButton buttonView,Boolean isChecked){
//根据checkedId获取到单选按钮组里面的具体单选按钮
If(isChecked){
//获取复选框对应的值
String str =buttonView.getText().toString();
}
}
}
-
在点击提交按钮或其他按钮时获取
此时是在提交等按钮的单击事件中通过一系列的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;
}
});