Inflar uma vista várias vezes no mesmo pai quando um botão é clicado

Meu aplicativo é sobre a criação de pesquisas. Para fazer isso, o usuário deve poder criar novos campos dinamicamente.

Portanto, ao criar uma nova pesquisa, uma Atividade é mostrada com apenas 2 botões (adicionar e excluir). Quando um usuário clica no botão Adicionar, uma linha aparece contendo um EditText (para que ele possa escrever a pergunta), um Spinner (que permite ao usuário selecionar o tipo de campo: texto, RadioButton, CheckBox, etc.) e outro EditText ( em que as diferentes opções de resposta disponíveis são escritas, se aplicável).

Para fazer isso, criei um arquivo XML contendo esses Widgets e cada vez que o usuário clica no botão Adicionar, o XML é inflado. Funciona na primeira vez que pressiono o botão, mas depois disso ... nada acontece.

Li em algum lugar que você não pode inflar o mesmo filho duas vezes em um dos pais, a menos que isso seja feito em um loop.

Então, minhas perguntas são:

-> Como posso contornar isso e obter o efeito desejado?

-> Por que isso não se aplica em um loop?

Qualquer ajuda ou dica é apreciada. Mais uma vez, muito obrigado por todo o apoio que a comunidade me deu.

NOTA: Na documentação do Android, eles falam sobre a clonagem de um inflador, mas as informações são escassas e eu não consegui encontrar nenhuma outra informação sobre ele.

Código fonte:

XML - Mantenedor principal:

<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 - Influenciado:

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

Botão Adicionar:

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

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

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

questionAnswers(1)

yourAnswerToTheQuestion