我有一个ListView
包含多个项目,以便在滚动期间重复使用这些项目。
一个项目由几个TextViews
和一个RadioGroup
组成,包含3 RadioButtons
。
我遇到的问题是,当我为5个项目中的每个项目选择RadioButton
时,当我向下滚动列表并再次向上滚动时,我在开头做的选择是没有被保存(这意味着没有RadioButton
或错误的将被显示为已选中),而某些RadioButtons
也会出现选择,即使我从未点过它们。
我试图将所选内容的checkedId
保存在列表中,但没有运气。
关注我的代码:
public View getView(int position, View convertView, ViewGroup parent) {
...
int questionID = question.getQuestionID();
if (mappedSelectedAnswer.containsKey(questionID)) {
radioGroup.check(mappedSelectedAnswer.get(questionID));
} else {
radioGroup.check(-1);
}
...
}
和RadioGroupListener
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId != -1) {
mappedSelectedAnswer.put(questionID, checkedId);
}
...
});
mappedSelectedAnswer
是一个包含密钥questionID
的列表,其值为checkedId
有人对这个问题有任何建议吗?
谢谢
答案 0 :(得分:0)
您可能需要将它们全部声明为单独的RadioGroup,以便为每个Item选择它们。我希望它会对你有所帮助。
由于
答案 1 :(得分:0)
你需要三件事
1- A存储每个RadioGroup的选定ID的列表
2- RadioGroup中的一个侦听器,用于在选项卡上设置/重置所选的id
3-创建视图时,适配器将检查此列表,并选择您在监听器中保存的项目
答案 2 :(得分:0)
例如:
<RadioGroup
android:id="@+id/group"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Standard Taxi (upto 4 passengers)"
android:id="@+id/standardTaxi"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:onClick="radio"
android:checked="true" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Wagon(upto 4 passengers)"
android:id="@+id/wagon"
android:layout_below="@+id/standardTaxi"
android:layout_alignParentStart="true"
android:onClick="radio"
android:checked="false" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Wheelchair Accessible Taxi"
android:id="@+id/wheelchair"
android:layout_below="@+id/wagon"
android:layout_alignParentStart="true"
android:onClick="radio"
android:checked="false" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Van/Maxi(5-11 passengers)"
android:id="@+id/van"
android:layout_centerVertical="true"
android:onClick="radio"
android:layout_alignParentStart="true"
android:checked="false" />
</RadioGroup>