1

我有一个带有单选按钮列表的简单单选组。出于某种原因,在选择该组中的单选按钮时,我没有看到更改侦听器被触发。在调试模式下,我可以看到侦听器正在设置,并且在 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");
            }
        }
    };
}
4

1 回答 1

0

您对两个回调使用相同的侦听器,因此第一个被销毁。如果将后者更改为 listener2 应该很好。

这个为listener1留下了rg1的参考

rg1.setOnCheckedChangeListener(listener1);

然后这会破坏原来的 listener1 并给你一个新的

listener1 = new RadioGroup.OnCheckedChangeListener() {}

于 2014-02-17T04:14:57.943 回答