Android 在运行时构建无线组

Android 在运行时构建无线组,android,android-edittext,radio-group,Android,Android Edittext,Radio Group,我在运行时构建布局,我必须为用户显示带有4个单选按钮的单选组,但有时我应该显示带有单选按钮的编辑字段,以便用户可以在编辑框中写入与该单选按钮相关的内容。 我希望编辑字段显示在单选按钮旁边,。 我试图构建编辑字段,但它一直显示在单选组下,如果我用编辑文本在线性布局中创建一个按钮,它将超出单选组的范围。 这是建立无线电组的代码 RadioGroup radioGroup = new RadioGroup(context); radioGroup.setContentDescripti

我在运行时构建布局,我必须为用户显示带有4个单选按钮的单选组,但有时我应该显示带有单选按钮的编辑字段,以便用户可以在编辑框中写入与该单选按钮相关的内容。 我希望编辑字段显示在单选按钮旁边,。 我试图构建编辑字段,但它一直显示在单选组下,如果我用编辑文本在线性布局中创建一个按钮,它将超出单选组的范围。 这是建立无线电组的代码

    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);
RadioGroup-RadioGroup=新的RadioGroup(上下文);
radioGroup.setContentDescription(id);
对于(int i=0;i

如何在运行时构建编辑字段以显示在单选按钮旁边。

我的建议是在xml文件中为
RadioGroup
的每一行创建布局,如下所示:

<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);
final LinearLayout root=(LinearLayout)findViewById(R.id.root);
最终射线组射线组=新射线组(本);
对于(int i=0;i<3;i++){
最终LinearLayout项=(LinearLayout)LayoutFlater.from(this).充气(R.layout.item_单选按钮,空);
最终RadioButton=(RadioButton)项。findViewById(R.id.button);
final EditText EditText=(EditText)item.findViewById(R.id.edit_text);
按钮设置文本(“测试”);
//是否显示编辑文本的条件
如果(i%2==0){
editText.setVisibility(View.VISIBLE);
}
radioGroup.addView(项目);
}
root.addView(放射组);