1

我有一个ListView问题。在每一行中都有一个问题和一个RadioGroup可能的答案。并非所有问题都有相同数量的答案,所以我RadioButtons在我的 custom 中动态添加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?
                }
            }
        });
4

3 回答 3

0

可能是这样的:

@Override public void onCheckedChanged(RadioGroup group, int checkedId) {
    RadioButton btn = (RadioButton)findViewById(checkedId);
}

然后是btn的东西?:)

于 2015-02-04T23:02:29.557 回答
0

找到选中的按钮

View checkedButton = rg.findViewById(checkedId);

查找选中按钮的索引

int checkedIndex = rg.indexOfChild(checkedButton);

在执行上述操作之前,您必须将 id 设置为评论中提到的按钮rb.setId(count)。对于组中的每个按钮,计数必须是唯一的。

于 2015-02-05T05:19:15.647 回答
0

1 首先在您的适配器中创建CompoundButton.OnCheckedChangeListener的全局变量,例如私有 CompoundButton.OnCheckedChangeListener监听器

2 秒后,您必须在创建单选按钮时将侦听器变量与单选按钮关联。

3 第三,当您将数据或值与您的 ui 绑定时,您必须调用此方法

listener = new CompoundButton.OnCheckedChangeListener() 
{
            @Override
            public void onCheckedChanged ( CompoundButton buttonView, boolean isChecked ) 
{

            }
        };
于 2019-08-16T12:23:03.650 回答