【问题标题】:Creating RadioButtons programmatically以编程方式创建 RadioButtons
【发布时间】:2011-10-02 13:14:22
【问题描述】:

我想创建一系列与 Android 应用中的字符串数组相对应的单选按钮。单选按钮应切换要从数组显示的内容。我该怎么做?

【问题讨论】:

  • 到目前为止你有没有做过什么。向我们展示您的进度,以便我们为您提供帮助

标签: android radio-button


【解决方案1】:

您必须将单选按钮添加到RadioGroup,然后将RadioGroup 添加到layout

我错过了一些信息,例如提交的内容,但您的代码应该如下所示:

private void createRadioButton() {
    final RadioButton[] rb = new RadioButton[5];
    RadioGroup rg = new RadioGroup(this); //create the RadioGroup
    rg.setOrientation(RadioGroup.HORIZONTAL);//or RadioGroup.VERTICAL
    for(int i=0; i<5; i++){
        rb[i]  = new RadioButton(this);
        rg.addView(rb[i]); //the RadioButtons are added to the radioGroup instead of the layout
        rb[i].setText("Test");
    }
    ll.addView(rg);//you add the whole RadioGroup to the layout
    ll.addView(submit); 
    submit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            for(int i = 0; i < 5; i++) { 
                rg.removeView(rb[i]);//now the RadioButtons are in the RadioGroup
            }  
            ll.removeView(submit);
            Questions();
        }
    });   
}

另一个动态创建radiobutton的代码

<TableRow>
    <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/radiobuttons">
     </RadioGroup>
</TableRow>

代码:

public void makeRadioButtons(Vector tmpVector, int i, LinearLayout.LayoutParams lp)
{
     RadioButton rb = new RadioButton(this);
     rb.setText((String) tmpVector.elementAt(i));
     //rg is private member of class which refers to the radio group which I find
     //by id.
     rg.addView(rb, 0, lp);

}

【讨论】:

  • ll.removeView(submit);中的ll是什么?
  • @partho 我猜它代表一个LinearLayout 实例?
猜你喜欢
  • 1970-01-01
  • 2013-03-28
  • 2013-07-25
  • 2013-07-22
  • 2018-06-04
  • 2015-03-17
  • 2013-11-24
  • 2016-01-01
  • 2011-03-04
相关资源
最近更新 更多