收音机组中的单选按钮在单击后不会显示

时间:2011-10-17 21:30:57

标签: android android-emulator radio-group

我遇到了收音机组中的单选按钮问题。

我有一个应用程序,它是一个测验应用程序,我问了5个问题。

在我的Android模拟器中运行应用程序时,所有问题都没有问题,但仅限于第3个问题。当我用鼠标点击单选按钮时,它似乎切换到一个检查状态,但然后立即取消选中。有没有人见过这种行为?!

我设置此Radio组并在一个广播组中动态添加4个单选按钮,然后使用 OnCheckedChangeListener()事件来捕获更改。

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                for(int i=0; i<=3;i++)
                {
                    RadioButton btn = (RadioButton) radioGroup.getChildAt(i);

                    if (btn.isPressed() && questNo < 6)
                    {

                        if (corrAns[questNo-1].equals(btn.getText()) && flag==true)
                        {
                            Log.e(LOG_TAG,"onCheckedChanged: correct answer = btn Text");
                            score++;
                            flag = false;
                            checked = true; 
                        }
                        else if(checked==true)
                        {
                            Log.e(LOG_TAG,"onCheckedChanged: correct answer != btn Text");
                            score--;
                            flag = true;
                            checked=false;
                        }
                    }
                }

                Log.e(LOG_TAG, "Score:"+ Integer.toString(score));
            }
        });

我注意到它在不同的问题上随机发生,只在第一个选择的单选按钮上发生,但如果你选择另一个,则功能恢复正常。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我有同样的错误。我也在使用动态radioGroups和按钮。这对我有用:

private OnCheckedChangeListener rblLikert_Listener = new OnCheckedChangeListener() {
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        int selectedIndex = group.getCheckedRadioButtonId();

        if(selectedIndex != -1)
        {
            m_likertValue = radioButtonValue;
            int buttonId = group.getCheckedRadioButtonId();
            Logger.i("button id: " + String.valueOf(buttonId));
            RadioButton selectedButton = (RadioButton)findViewById(buttonId);
            selectedButton.toggle();
            Logger.i(" is checked: " + String.valueOf(selectedButton.isChecked()));
        }
    }
};