Android -get单选按钮id基于值

时间:2016-06-16 06:25:43

标签: android

当用户在检查单选按钮后单击按钮时,我想强调正确和错误的选项。如果该选项正确,请突出显示。其他突出显示正确选项。

有没有办法根据其值获取组中的单选按钮ID?或者我需要使用开关盒吗?

我搜索得足够多但却找不到我需要的东西。

修改

我的布局简单,包含一个问题,4个选项,一个按钮。用户选中单选按钮并单击复选按钮。如果用户选择了错误选项,请突出显示正确的选项我知道什么是正确的选择值。

choice1,choice2,choice3,choice4是四个单选按钮。用户检查choice3。但是选择2是正确的。如何在此广播组中按值选择choice2。

  group.getRadioButtonId("choice2")

有类似的东西吗?

5 个答案:

答案 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;
                }
            }
        }
    });