【问题标题】:Building Radio group at run time android在运行时构建无线电组android
【发布时间】:2013-06-08 11:22:01
【问题描述】:

我在运行时构建布局,我必须为用户显示一个带有 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);

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

【问题讨论】:

    标签: android android-edittext radio-group


    【解决方案1】:

    我的建议是在这样的 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-25
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      相关资源
      最近更新 更多