0

私のAndroidアプリでは、次のコードを使用してラジオグループ内に、配列リストのサイズに応じて動的ラジオボタンを作成しようとしています

for (int aa = 0; aa < itemname.length(); aa++)
{
    String iname = itemname.getJSONObject(aa).getString("item");

    final RadioButton[] radioButton = new RadioButton[itemname.length()];
    radioButton[aa] = new RadioButton(this);
    radioGroup.addView(radioButton[aa]);
    radioButton[aa].setTextColor(R.color.black);
    radioButton[aa].setText(iname);
    radioButton[aa].setButtonDrawable(R.drawable.about_us_tab);                       

    radioButton[aa].setId(h_count);
    radioGroup.setOnCheckedChangeListener(new     android.widget.RadioGroup.OnCheckedChangeListener()
     {   
         public void onCheckedChanged(RadioGroup group, int checkedId)
         {   
             int selectedBtn = radioGroup.getCheckedRadioButtonId();
          }
       });
       h_count++;
      }
  }

すべてのデータを正しい順序で取得しており、ラジオ グループの onclick アクションも正しく機能しています。しかし、最初のラジオボタンを選択モードにしたいです。このために、次のようにif条件を使用してみました

if(aa == 0)
    {
        radioButton[aa].setChecked(true);
        radioButton[aa].setId(h_count);
    }

しかし、ここでの問題は、最初のものが選択され、ラジオグループの onclick アクションで最初のものが選択解除されず、他のすべてが正常に機能していることです。

ラジオグループのonclickアクションで最初のものも選択解除する方法

4

1 に答える 1

0

この方法で試してみてください

for (int aa = 0; aa < itemname.length(); aa++)
{
    String iname = itemname.getJSONObject(aa).getString("item");

    final RadioButton radioButton = new RadioButton(this);
    radioGroup.addView(radioButton;
    radioButton.setTextColor(R.color.black);
    radioButton.setText(iname);
    radioButton.setButtonDrawable(R.drawable.about_us_tab);                       

    if(aa == 0)
    {
        radioButton.setChecked(true);
    }

    radioButton.setId(h_count);
    radioGroup.setOnCheckedChangeListener(new     android.widget.RadioGroup.OnCheckedChangeListener()
    {   
         public void onCheckedChanged(RadioGroup group, int checkedId)
         {   
             int selectedBtn = radioGroup.getCheckedRadioButtonId();
         }
    });
    h_count++;
}
于 2012-06-28T05:42:19.283 に答える