当用户在检查单选按钮后单击按钮时,我想强调正确和错误的选项。如果该选项正确,请突出显示。其他突出显示正确选项。
有没有办法根据其值获取组中的单选按钮ID?或者我需要使用开关盒吗?
我搜索得足够多但却找不到我需要的东西。
修改
我的布局简单,包含一个问题,4个选项,一个按钮。用户选中单选按钮并单击复选按钮。如果用户选择了错误选项,请突出显示正确的选项我知道什么是正确的选择值。
choice1,choice2,choice3,choice4是四个单选按钮。用户检查choice3。但是选择2是正确的。如何在此广播组中按值选择choice2。
group.getRadioButtonId("choice2")
有类似的东西吗?
答案 0 :(得分:1)
您可以遍历RadioGroup
的孩子以获得所需的孩子:
int count = radioGroup.getChildCount();
for (int i = 0 ; i < count; i++) {
RadioButton button = (RadioButton) radioGroup.getChildAt(i);
if (button.getText().equals("choice2")) {
int id = button.getId(); // the ID you're looking for
}
}
答案 1 :(得分:0)
你可以这样检查
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
int rbId = group.getCheckedRadioButtonId();
RadioButton rb = (RadioButton) findViewById(rbId);
switch (group.getId()) {
case R.id.radiogroupID:
if (rb.getText().toString().equalsIgnoreCase("right")) {
// your logic
} else {
//your logic
}
}
}
答案 2 :(得分:0)
你可以使用这些行。它为我工作
int checkedId = radioGroup.getCheckedRadioButtonId();
View radioButton = radioGroup.findViewById(checkedId);
int radioId = radioGroup.indexOfChild(radioButton);
RadioButton btn = (RadioButton) radioGroup.getChildAt(radioId);
答案 3 :(得分:0)
首先检查哪个选项为true。听到选择2好的。默认情况下设置为true,而不是检查用户选中的值。如果用户选择其他选项而不是显示消息并传递true选项,我们已经检查了真实
答案 4 :(得分:0)
创建一个包含radiobutton
所有id的int数组int[] rb_IDs=new int[]{R.id.rb1,R.id.rb2,R.id.rb3};
然后在按钮内点击:
RadioGroup rg=(RadioGroup) findViewById(R.id.rg);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
for (int i=0;i<rb_IDs.length;i++)
{
RadioButton rb=(RadioButton)findViewById(rb_IDs[i]);
if (rb.getText().toString().equals("YOUR CORRECT ANSWER")&&!rb.isChecked())
{
//
//Do your thing
//
//ID of the correct answer Radiobutton is
int id=rb_IDs[i];
//HighLighting the answer
rb.setBackgroundColor(Color.parseColor("#00ff00"));
break;
}
}
}
});