我有一个TableLayout,其中有一个Table Row。我正在尝试使用下面的函数添加另一个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()时,应用程序崩溃。”
答案 0 :(得分:0)
将View
添加到ViewGroup
时,它将保留对父级的引用。每次将相同的视图添加到表时,就会发生此问题。正因为如此:
tableRowNew = tableRowOne;
尝试删除上面的行,因为每次尝试添加tableRowNew
时,您都试图添加以前添加到table
的视图。