Android: добавление еще одной строки таблицы программно - PullRequest
0 голосов
/ 16 октября 2018

У меня есть TableLayout с одной строкой таблицы внутри.Я пытаюсь использовать функцию ниже, чтобы добавить еще один TableRow с теми же значениями, что и у уже существующей строки таблицы:

tableRowOne = findViewById(R.id.tableRowOne);
editTextOne = findViewById(R.id.editTextOne);

public void AddTableRowFunction() {        

    TableRow tableRowNew = new TableRow(this);
    tableRowNew = tableRowOne;

    EditText editTextNew = new EditText(this);

    editTextNew = editTextPlayer1;

    tableRowNew.addView(editTextNew);

    table.addView(tableRowNew, 0 ,new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));

}

Но приложение вылетает, когда я вызываю функцию, сообщая мне, что "указанный дочерний элемент уже имеетродитель. Вы должны сначала вызвать removeView () у родителя ребенка. "

1 Ответ

0 голосов
/ 16 октября 2018

Когда View добавляется к ViewGroup, он содержит ссылку на родителя.Когда вы добавляете одно и то же представление к своей таблице каждый раз, эта проблема возникает.Это из-за этого:

tableRowNew = tableRowOne;

Попробуйте удалить вышеуказанную строку, потому что каждый раз, когда вы пытались добавить tableRowNew, вы пытались добавить представление, которое ранее было добавлено к table.

...