1

ユーザーがラジオ ボタンを使用して設定を変更できるアクティビティがあります。2 ~ 7 個のオプションがある可能性があるため、onCreate() でラジオ ボタンを動的に追加したいと考えています。ちょっとした調査で、私はそれを行う方法を理解し、私自身とあなたの利益のために結果を文書化しました.

4

1 に答える 1

1

まず、ラジオ グループ ウィジェットを含めて宣言します。LayoutParams と RadioButton も必要になるので、それらも含めます。

    //SomeAndroidActivity
    import android.widget.RadioGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.RadioButton;

    public class SomeAndroidActivity extends Activity () {
        //declare a radio group
        RadioGroup radioGroup;
    }

onCreate メソッド内で、ラジオ グループを初期化します。

    //SomeAndroidActivity

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_some_android);
      radioGroup = (RadioGroup) findViewById(R.id.radio_selection_group);
    }

R.id.radio_selection_group は、XML ファイルで宣言されているラジオ グループを参照しているため、それも確認してください。

    <!-- activity_some_android.xml -->
    <RelativeLayout xmlns:android=
        "http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".SomeAndroidActivity" >

      <RadioGroup
        android:id="@+id/radio_selection_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="76dp"
        android:layout_marginTop="135dp" >

      </RadioGroup>
    </RelativeLayout>

SomeAndroidActivity に戻り、ラジオ グループにボタンを動的に追加するメソッドを作成します。

    //SomeAndroidActivity
    private void addRadioButtons(int numButtons) {
      for(int i = 0; i < numButtons; i++)
        //instantiate...
        RadioButton radioButton = new RadioButton(this);

        //set the values that you would otherwise hardcode in the xml...
        radioButton.setLayoutParams 
          (new LayoutParams 
          (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

        //label the button...
        radioButton.setText("Radio Button #" + i);
        radioButton.setId(i);

        //add it to the group.
        radioGroup.addView(radioButton, i);
      }
    }

次に、そのメソッドを onCreate で呼び出します。

    //SomeAndroidActivity
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_some_android);
      radioGroup = (RadioGroup) findViewById(R.id.radio_selection_group);

      int numberOfRadioButtons = 7;
      addRadioButtons(numberOfRadioButtons);
    }

簡単パイ。

これについての私のブログ記事はこちらです。 http://rocketships.ca/blog/how-to-dynamically-add-radio-buttons/

于 2013-03-27T23:19:08.303 に答える