Android RadioGroup.clearCheck()在动态创建单选按钮的情况下不工作

Android RadioGroup.clearCheck()在动态创建单选按钮的情况下不工作,android,onclick,radio-button,Android,Onclick,Radio Button,在我的应用程序中,我正在动态创建单选按钮,并希望在选中其中一个单选按钮时取消选中所有其他单选按钮。为此,我使用了RadioGroup.clearCheck(),但它根本不起作用。以下代码: for (int i=0; i<files.length; i++) { rbi = new RadioButton(context); rb1 = new RadioGroup(context);

在我的应用程序中,我正在动态创建单选按钮,并希望在选中其中一个单选按钮时取消选中所有其他单选按钮。为此,我使用了RadioGroup.clearCheck(),但它根本不起作用。以下代码:

for (int i=0; i<files.length; i++)
            {
                rbi = new RadioButton(context);

                rb1 = new RadioGroup(context);
                rb1.addView(rbi);


                nameOfFile = files[i].getName();
                rbi.setText(nameOfFile);
                ll.addView(rb1);

                rbi.setOnClickListener(
                        new RadioButton.OnClickListener()
                        {  
                            @Override  
                            public void onClick(View v)
                            {                                   

                                rb1.clearCheck();
                                rbi.setChecked(true);

                            }
for(int i=0;i您是否尝试过(使用System.out.println(“test”))或其他东西,如果它甚至进入了清算部分?将首先测试它。
这就是zapl的意思

rb1.setOnCheckedChangeListener(
         new RadioGroup.OnCheckedChangeListener() {
                 public void onCheckedChanged(RadioGroup rb1,
                        int checkedId) {
                        Log.v("Selected", "New radio item selected: " + checkedId);
                        }
          });
如果有效,那么您可以尝试以下方法:

 if (rbi.isChecked()){
    rb1.clearCheck();
    rbi.setChecked(true);
    }

您创建了大量的
RadioButton
s,其中只有1个
RadioButton
。这可能不是您想要的。一个
RadioButton
组需要包含多个
RadioButton
s,以便您可以在列表中选择一个活动按钮。请参阅下面的代码

// create 1 RadioGroup, add it to the layout
RadioGroup rg = new RadioGroup(context);
ll.addView(rg);
// add several RadioButtons to the RadioGroup
for (int i=0; i < files.length; i++) {
    String nameOfFile = files[i].getName();
    RadioButton rb = new RadioButton(context);
    rb.setId(i); // assign an id
    rb.setText(nameOfFile);
    rg.addView(rb); // add to group
}
// do something when user checks a button
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // user selected files[checkedId].getName();
    }
});
//创建1个放射组,将其添加到布局中
放射组rg=新放射组(上下文);
ll.addView(rg);
//将几个单选按钮添加到RadioGroup
对于(int i=0;i
当你检查一个按钮时,它们都会被检查?你不应该为
RadioButton
setOnClickListener
,因为它已经由
RadioGroup
管理,它会通过
setOnCheckedChangeListener
@Bigflow通知你,当我调用rb1时,没有一个RadioButton被检查。clearcheck()@zapl你能给我几行代码吗?