Мужчина! Спасатель жизни! : *

риложение о создании опросов. Для этого пользователь должен иметь возможность динамически создавать новые поля.

Таким образом, при создании нового опроса активность отображается только с 2 кнопками (добавить и удалить). Когда пользователь нажимает кнопку добавления, появляется строка, содержащая EditText (чтобы он мог написать вопрос), Spinner (который позволяет пользователю выбрать тип поля: текст, RadioButton, CheckBox и т. Д.) И другой EditText ( в котором записаны различные доступные варианты ответов, если применимо).

Для этого я создал XML-файл, содержащий эти виджеты, и каждый раз, когда пользователь нажимает кнопку «Добавить», XML раздувается. Это работает при первом нажатии кнопки, но после этого ... ничего не происходит.

Я где-то читал, что вы не можете раздувать одного и того же ребенка 2 раза в родителе, если это не сделано в цикле.

Итак, мои вопросы:

-> Как я могу обойти это и получить желаемый эффект?

-> Почему это не применяется в цикле?

Любая помощь или подсказка приветствуется. Еще раз, большое спасибо за всю поддержку, которую сообщество оказало мне.

ПРИМЕЧАНИЕ. В документации по Android говорится о клонировании инфлятора, но информации там мало, и я не смог найти никакой другой информации о нем.

Исходный код:

XML - Основной софтвер:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:id="@+id/wrapper"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />

    <Button
        android:id="@+id/mds_new_addfield_button"
        android:tag="new"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add Field"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
    />
    <Button
        android:id="@+id/mds_new_deletefield_button"
        android:tag="delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Delete Field"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
    />

</RelativeLayout>

XML-накачанный:

<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
>
    <TableRow>
        <TextView
            android:id="@+id/mdsnew_field_tv"
            style="@style/dsn_field"
            android:text="Field Name    " 
        />

        <TextView
            android:id="@+id/mdsnew_type_tv"
            style="@style/dsn_field"
            android:text="Type of Field   " 
        />

        <TextView
            android:id="@+id/mdsnew_choices_tv"
            style="@style/dsn_field"
            android:text="Choices"  
        />
    </TableRow>

    <TableRow>

        <EditText
            android:id="@+id/mdsnew_fieldname_et"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Field Name"
            android:textSize="18sp"
        />

        <Spinner
            android:id="@+id/mdsnew_type_sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        />

        <EditText
            android:id="@+id/mdsnew_choices_et"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Choices    "
            android:textSize="18sp"
        />

    </TableRow>
</TableLayout>

Кнопка Добавить:

LinearLayout myRoot = (LinearLayout) findViewById(R.id.wrapper);

LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

inflater.inflate(R.layout.mds_new_row, myRoot);

Ответы на вопрос(1)

Ваш ответ на вопрос