Android - 从代码构建动态表单

时间:2011-05-01 09:21:12

标签: java android forms

我必须在我的活动中构建一个动态表单,具体取决于通过HTTP从XML中获取的数据。

这可能是一个或多个RadioGroup,每个RadioButton只有三个EditText。在RadioGroups之后,我需要在提交按钮之后放置两个CheckBox和一个LinearLayout控件。

我准备了一个LinearLayout,它具有垂直方向和唯一ID,可以从代码中解决,我希望我可以在Java代码中创建一个表单控件,而无需在android XML布局中定义并添加到{{1 }}

我谷歌搜索了几个小时,但找不到任何示例如何做到这一点。

有人可以提供一些例子来创建例如一个RadioGruop,其中包含1-2 RadioButton个,并将其添加到LinearLayout(以XML布局准备)?

非常感谢任何建议!!!

1 个答案:

答案 0 :(得分:5)

这些小部件可以像其他小部件一样创建:

final Context context; /* get Context from somewhere */
final LinearLayout layout = (LinearLayout)findViewById(R.id.your_layout);
final RadioGroup group = new RadioGroup(context);
final RadioButton button1 = new RadioButton(context);
button1.setId(button1_id); // this id can be generated as you like.
group.addView(button1,
    new RadioGroup.LayoutParams(
        RadioGroup.LayoutParams.WRAP_CONTENT,    
        RadioGroup.LayoutParams.WRAP_CONTENT));
final RadioButton button2 = new RadioButton(context);
button1.setId(button2_id); // this id can be generated as you like.
button2.setChecked(true);
group.addView(button2,
    new RadioGroup.LayoutParams(
        RadioGroup.LayoutParams.WRAP_CONTENT,    
        RadioGroup.LayoutParams.WRAP_CONTENT));
layout.addView(group,
    new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,    
        LinearLayout.LayoutParams.WRAP_CONTENT));

我没有测试过这段代码,因此可能包含一些错误。但我希望你能得到这个想法。