Android RadioGroup OnCheckedChangeListener无法正常工作

时间:2014-02-16 16:13:28

标签: android onclick android-radiogroup

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

1 个答案:

答案 0 :(得分:0)

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

这一个为rc1

留下了listener1的引用

rg1.setOnCheckedChangeListener(listener1);

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

listener1 = new RadioGroup.OnCheckedChangeListener() {}