我有一个XML表格布局,其中有一行并有三个textview。从数组动态解析表中的数据,但是当我启动应用程序时会崩溃。 这是我的代码
TableLayout historyEntries = (TableLayout)findViewById(R.id.DataTable);
historyEntries.setStretchAllColumns(true);
historyEntries.bringToFront();
for(int i = 0; i < dataArray.length; i++){
TableRow tr = (TableRow) findViewById(R.id.datarow);
TextView c1 = (TextView) findViewById(R.id.TextView1);
TextView c2 = (TextView) findViewById(R.id.TextView2);
TextView c3 = (TextView) findViewById(R.id.TextView3);
c1.setText(dataArray[i]);
c2.setText(String.valueOf(dataArray[i]));
c3.setText(String.valueOf(dataArray[i]));
tr.addView(c1);
tr.addView(c2);
tr.addView(c3);
historyEntries.addView(tr);
}
错误
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
答案 0 :(得分:1)
一个视图可以只有一个父视图。根据{{1}}调用判断,您的一个或所有视图都可能具有父视图。如果您的视图已经在活动中膨胀,只需删除以下行:
findViewById
否则,如果要添加更多行,则可以使用tr.addView(c1);
tr.addView(c2);
tr.addView(c3);
historyEntries.addView(tr);
和TableRow
创建一个单独的布局文件:
TextView