可以在 RadioGroup android 中选择多个 RadioButton

Posted

技术标签:

【中文标题】可以在 RadioGroup android 中选择多个 RadioButton【英文标题】:Multiple RadioButton can be selected in a RadioGroup android 【发布时间】:2013-03-12 15:53:31 【问题描述】:

我在我的活动布局中以编程方式添加(必须作为单选组和单选按钮的数量是变量)单选组:

rg = new RadioGroup(this);
rg.setOrientation(RadioGroup.HORIZONTAL);
rg.setId(list_questions.get(i).getQuizz_questions_id()); // get from the DB
lrg.add(rg);
for (int j = 0; j < list_answers.size(); j++) 
    rb = new RadioButton(this);
    rb.setId(list_answers.get(j).getQuizz_answers_id());
    rb.setText(String.valueOf(list_answers.get(j).getQuizz_answers_id()) + "-" + String.valueOf(list_answers.size()) + "-" + String.valueOf(list_questions.get(i).getQuizz_questions_id())); // I added that to see if there was a problem on the indexes, but there's not
    rg.addView(rb, new LayoutParams(100,LayoutParams.WRAP_CONTENT));

tr.addView(rg, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

完整的代码可以在这里找到:http://pastebin.com/d9zZjmuu

我的问题是我可以在三个单选组中选择两个单选按钮。

我知道您很难提供帮助,因为您没有所有资源等您对问题出在哪里有任何想法,我们将不胜感激!

感谢和抱歉我的英语不好。

【问题讨论】:

"设备上没有截图应用程序,所以..." 当您的图像正常工作时,Eclipse 中的设备窗口可以截取屏幕截图。下次。 :) 我没有模拟应用程序,而是直接在无法连接到互联网的平板电脑上观看它。但还是谢谢。 ;) @Arlem 将您的完整代码发布在您填充所有无线电组的位置,根据您提供的信息很难识别 您也可以在设备上截屏,只要启用调试即可。 (无需 root 权限或互联网。) @Sam :不,我不能,这正是问题所在,为什么我找不到问题的根源......我很高兴这个问题是由其他人。 【参考方案1】:

我重新创建了您的问题并通过给每个 RadioButton 一个唯一的 id 来解决它,就像这样简单:

rb.setId(list_answers.get(j).getQuizz_answers_id() + i * list_questions.size());

我不确定为什么默认的 OnCheckedChangeListeners 现在会变得混乱,但这里有一个简单的解决方法。

【讨论】:

谢谢,但这是另一个问题,每个 RadioButton ID 对应于数据库中的“响应”字段(在屏幕截图上“Réalisé partiellement”,“Jamais réalisé”......),我需要得到它们用用户的答案填充数据库: for (RadioGroup bla : lrg) useranswers.insert(new user_answers(null, ApplicationHelper.getInstance().idUser, ApplicationHelper.getInstance().idSession, bla.getId(), bla.getCheckedRadioButtonId())); 所以我不能像你那样随机设置它们。 实际上这些 id 不是随机的,您可以将它们转换为 list_answers.get(j).getQuizz_answers_id()(即 5、6、7)以取模。试试bla.getCheckedRadioButtonId() % list_questions.size() 这不是随机的。你只需要做一个模来获得价值 如果我想使用 "% list_questions.size()" 恢复到相同的值,我不应该把 "+ i" 去掉吗?或者我错过了什么...... @Arlem 不,modulo 不是除法。例如,(j + i * size) % size 将始终等于 j。模是除法后的余数。

以上是关于可以在 RadioGroup android 中选择多个 RadioButton的主要内容,如果未能解决你的问题,请参考以下文章

可以在 RadioGroup android 中选择多个 RadioButton

android如何实现代码控制RadioGroup中某一个按钮选中

android 中RadioGroup怎么实现横排按钮

android如何实现代码控制RadioGroup中某一个按钮选中

Android RadioGroup getCheckedRadioButtonId()

Android实现RadioGroup之间的互斥且radioButton可以选择或取消