android - 在 Android 应用程序中动态添加单选按钮

标签 android

我需要动态添加单选按钮。单选按钮可以是 3、4、5 或 6,并且会水平添加,一行最多包含 3 个单选按钮。

如果超过 3 个,那么它将位于上方单选按钮行的下方,如 GridView 中所示。我的单选按钮代码如下,但它在一行中显示所有单选按钮,这意味着它隐藏了单选按钮。

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
 android:orientation="vertical" >

   <TextView
 android:id="@+id/TextView01"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Choose Your Favorite Actress" >
  </TextView>

 <RadioGroup
android:id="@+id/RadioGroup01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
 </RadioGroup>
 <Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit" >
 </Button>
</LinearLayout>

Java 类是:

  @Override
  public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

       DisplayRadioButton();
  }


  public void DisplayRadioButton() {
       for(int i=0;i<10;i++) {
           RadioGroup radiogroup = (RadioGroup)findViewById(R.id.RadioGroup01);
           RadioButton rdbtn = new RadioButton(this);
           rdbtn.setId(i);
           rdbtn.setText(text[i]);
           radiogroup.addView(rdbtn);
  }

}

最佳答案

请尝试以下方式:

1) 在您的 xml 中删除 RadioGroup。动态创建它

RadioGroup radiogroup[];
RadioButton rdbtn[];
LinearLayout linear[]; 

radiogroup = new RadioGroup[9/3];
rdbtn = new RadioButton[9];
linear = new LinearLayout[9/3];

......
int count = 0; // integer flag

for(int i=0;i<9;i++){

  if the value of i is equal to 3 multiple then increase count by 1
         // sett linear[count]'s orientation is horizontal.

         root_layout.addView(linear[count]);
         radiogroup[count] = new RadioGroup(this);
         linear[count].addView(radiogroup[count]);  // add radio group to linear layout

       add radio button to radio group.

          rdbtn[i] = new RadioButton(this);
          rdbtn[i].addView(radiogroup[count]);


}

希望你能得到解决。注意数组索引越界异常。

您的 xml 可能如下所示:

<LinearLayout
           android:id= rootlayout
           ..... // the child linearlayout
                     .. . radio group
                        ... radio button
 </LinearLayout>   

关于android - 在 Android 应用程序中动态添加单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11536802/

相关文章:

Android 广播接收器错误 : Class not found exception

android - 这个 DEFINed 常量的值是多少?

安卓闹钟管理器 : BroadcastReceiver components are not allowed to register to receive intents

android - 多声道音频和录音709 高清标准

android - 在 Android 中按行从数据库中删除记录

android - 物理对象不随 Sprite 移动

Android SDK Manager : Bug when connecting to a proxy (empty username), 你能确认吗?

android - 如何在 TextView 末尾显示三个点

android - 嵌入式 Base64 图像不会在 Dolphin 或 Android Stock 浏览器中显示

android - 可以将一个按钮叠加在另一个按钮之上吗?