1

私のアプリでは、ラジオ ボタンを動的に作成しており、そのうちの 1 つがチェックされているときに他のすべてのラジオ ボタンのチェックを外したいと考えています。この目的のために、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);

                            }

助けてください。目標を達成するための代替ソリューションでさえ歓迎されます。よろしくお願いします。

4

2 に答える 2

2

1つだけの中にたくさんのRadioGroupsを作成しますRadioButton。それはおそらくあなたが望むものではありません。リスト内でアクティブなボタンを選択できるようRadioGroupに、にはいくつかのが含まれている必要があります。RadioButton以下のコードを参照してください

// 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();
    }
});
于 2012-11-19T14:33:23.213 に答える
1

クリア部分に入ったとしても、(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);
    }
于 2012-11-19T14:15:09.887 に答える