我有一个带有单选按钮列表的简单放射组。出于某种原因,我没有看到在该组中选择单选按钮时触发更改侦听器。在调试模式下,我可以看到侦听器已经设置,并且在UI中正确地选择了单选按钮。
RadioGroup.OnCheckedChangeListener listener1, listener2;
RadioGroup rg1;
public void radioBtnListener()
{
rg1 = (RadioGroup) view.findViewById(R.id.answerChoices);
rg1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("Log", "Clicked");
}
});
rg1.setOnCheckedChangeListener(listener1);
listener1 = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId != -1) {
Log.e("Log", "changed");
}
}
};
}
答案 0 :(得分:0)
您正在为两个回调使用相同的侦听器,因此第一个被销毁。如果你将后者改为listener2,它应该是好的。
这一个为rc1
留下了listener1的引用 rg1.setOnCheckedChangeListener(listener1);
然后这会破坏原始的listener1并给你一个新的
listener1 = new RadioGroup.OnCheckedChangeListener() {}