2

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

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

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

我设置了这个 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));
            }
        });

我注意到它在不同的问题上随机发生,并且仅在选择的第一个单选按钮上发生,但如果您在之后选择另一个单选按钮,则功能恢复正常。有任何想法吗?

4

1 回答 1

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()));
        }
    }
};
于 2012-02-14T16:19:35.473 回答