【发布时间】:2015-02-04 22:34:02
【问题描述】:
我有一个ListView 的问题。在每一行中都有一个问题和一个RadioGroup 以及可能的答案。并非所有问题都有相同数量的答案,因此我在自定义ListAdapter 中动态添加RadioButtons。我的问题是如何将监听器添加到这些动态创建的RadioButtons。我的代码:
RadioGroup rg = (RadioGroup) convertView.findViewById(R.id.question);
rg.removeAllViews();
for (String qA : question.answers) {
RadioButton rb = new RadioButton(getContext());
rb.setText(qA.toString());
rg.addView(rb);
}
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId) {
//WHAT SHOULD I PUT HERE?
}
}
});
【问题讨论】:
-
您想确定哪个动态添加的 RadioButton 的状态已更改。对吗?
-
@user370305 是的,你是对的。
-
好的,在单选按钮的 for 循环中,只需为每个 RadioButton 设置 Id。根据循环计数。喜欢
rb.setId(count);。 -
我应该在循环内的单选按钮上简单地使用 setId(id) 吗?
-
最有可能的是,
rg.setId(position); // list item position of getView()和rb.setId(count); // for loop count ..现在在onCheckedChangedgroup.getId()返回列表项位置,checkedId返回单选按钮的位置。
标签: android android-listview android-adapter android-radiogroup android-radiobutton