0

実行時にレイアウトを作成しています。ユーザーに 4 つのラジオ ボタンを含むラジオ グループを表示する必要がありますが、ラジオ ボタンを含む編集フィールドを表示して、ユーザーがそのラジオ ボタンに関連するものを記述できるようにする必要がある場合もあります。編集ボックスで。編集フィールドをラジオボタンの横に表示したい ,. 編集フィールドを作成しようとしましたが、ラジオ グループの下に表示され続けます。ボタンの 1 つを編集テキストと一緒に線形レイアウトで分離すると、ラジオ グループの範囲外になります。これはラジオグループを構築するためのコードです

    RadioGroup radioGroup = new RadioGroup(context);
    radioGroup.setContentDescription(id);

     for (int i = 0; i < vector.size(); i++) {
    RadioButton radioButton = new RadioButton(context);
    radioButton.setTextColor(Color.BLACK);
    radioButton.setText("" + vector.get(i).getQ_text());

    radioButton.setContentDescription(vector.get(i).getA_id());
    radioButton.setTextSize(20);
    radioButton.setTextColor(Color.parseColor("#A5462E"));
    radioGroup.addView(radioButton);
    radioGroup.setPadding(20, 0, 0, 0);

実行時にラジオ ボタンの横に表示される編集フィールドを作成するにはどうすればよいですか。

4

1 に答える 1

0

RadioGroup私の提案は、次のようなxmlファイルであなたの各行のレイアウトを作成することです:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

<RadioButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

<EditText
        android:id="@+id/edit_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"/>

</LinearLayout>

そして、あなたのループでこのレイアウトを膨らませて、あなたが望むことをすることができます:

    final LinearLayout root = (LinearLayout) findViewById(R.id.root);
    final RadioGroup radioGroup = new RadioGroup(this);
    for (int i = 0; i < 3; i++) {

        final LinearLayout item = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_radio_button, null);
        final RadioButton button = (RadioButton) item.findViewById(R.id.button);
        final EditText editText = (EditText) item.findViewById(R.id.edit_text);

        button.setText("Test");

        // Your condition to show or not the editText
        if (i % 2 == 0) {
            editText.setVisibility(View.VISIBLE);
        }
        radioGroup.addView(item);
    }
    root.addView(radioGroup);
于 2013-06-08T12:34:45.370 に答える