Android - создайте динамическую форму из кода - PullRequest
3 голосов
/ 01 мая 2011

Мне нужно создать динамическую форму в своей деятельности в зависимости от данных, полученных через HTTP, которые заполнены из XML.

Это может быть один или несколько RadioGroup с, каждый из которых равен трем RadioButton с.,После RadioGroups мне нужно поместить два EditText и один CheckBox элемент управления с кнопкой впоследствии.

Я подготовил LinearLayout с вертикальной ориентацией и уникальным идентификатором для адресации из кода, и я ожидаю, что яЯ могу создать элемент управления формой в коде Java, не определяя XML-макет Android и не добавляя к этому LinearLayout.

Я несколько часов гуглял, но не смог найти ни одного примера, как это сделать.

Может ли кто-нибудь привести пример, например, как создать один RadioGruop с 1-2 RadioButton с и добавить его в LinearLayout (который подготовлен в формате XML)?

Большое спасибоза любой совет !!!

1 Ответ

5 голосов
/ 01 мая 2011

Эти виджеты можно создавать, как и любые другие виджеты:

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

Я не проверял этот код, поэтому он может содержать некоторые ошибки.Но я надеюсь, что вы поймете идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...