我遇到了收音机组中的单选按钮问题。
我有一个应用程序,它是一个测验应用程序,我问了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));
}
});
我注意到它在不同的问题上随机发生,只在第一个选择的单选按钮上发生,但如果你选择另一个,则功能恢复正常。有什么想法吗?
答案 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()));
}
}
};