Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - build dynamic form from code

I have to build a dynamic form in my activity depending on the data retrieved via HTTP that is popullated from XML.

This could be one or more RadioGroups each with exactly three RadioButtons. After RadioGroups I need to place two EditText and one CheckBox control with submit button afterwards.

I have prepared a LinearLayout with vertical orientation and unique ID to be addressed from code and I expect that I can create a form control within a Java code without defining in android XML layout and adding to this LinearLayout.

I was googling for a few hours but could not find any example how to do this.

Could anyone please provide some example how to create e.g. one RadioGruop with 1-2 RadioButtons and add it to the LinearLayout (that is prepared in XML layout)?

Many thanks for any advice!!!

like image 470
shadyyx Avatar asked Jan 27 '26 16:01

shadyyx


1 Answers

These widgets can be create like every other widgets:

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));

I haven't tested this code, so it may contain some errors. But I hope you'll get the idea.

like image 115
Michael Avatar answered Jan 30 '26 05:01

Michael



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!