我有ListView
个问题。在每一行中都有一个问题,RadioGroup
有可能的答案。并非所有问题都有相同数量的答案,因此我会在自定义RadioButtons
中动态添加ListAdapter
。我的问题是如何将Listener添加到这些动态创建的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?
}
}
});
答案 0 :(得分:0)
Maby是这样的:
@Override public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton btn = (RadioButton)findViewById(checkedId);
}
然后用btn的东西? :)
答案 1 :(得分:0)
查找选中的按钮
View checkedButton = rg.findViewById(checkedId);
查找已选中按钮的索引
int checkedIndex = rg.indexOfChild(checkedButton);
在执行上述操作之前,您必须将id设置为注释rb.setId(count)
中提到的按钮。对于组内的每个按钮,Count必须是唯一的。
答案 2 :(得分:0)
1首先在适配器中创建 CompoundButton.OnCheckedChangeListener 的全局变量,例如私有CompoundButton.OnCheckedChangeListener listener
2秒后,您必须在创建单选按钮时在单选按钮上附加侦听器变量。
在将数据或值与ui绑定时,需要三分之三的调用
listener = new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged ( CompoundButton buttonView, boolean isChecked )
{
}
};