我有一个页面,将显示一项选定运动的为期数周的预定比赛。选定的运动和星期存储在页面开头打开的 XML 文件中。当我点击下周链接时,一个新的星期日期值被存储到这个 xml 文件中,然后页面被重新加载。现在应该显示下周的任何游戏。这些游戏显示在一个表格布局中,我在其中以编程方式根据需要在 .java 页面中创建行。这是代码的简化示例。
TableLayout tlGames = (TableLayout)findViewById(R.id.table_games);
for (int i = 0; i < gameCount; i++)
{
TableRow trGameHomeTeam = new TableRow(this);
TextView tvHomeTeamName = new TextView(this);
tvHomeTeamName.setText("Home Team Name Here");
tvHomeTeamName.setLayoutParams(new LayoutParam (LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
TextView tvHomeTeamScore = new TextView(this);
tvHomeTeamScore.setText("Home Team Score Here");
tvHomeTeamScore.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
trGameHomeTeam.addView(tvHomeTeamName);
trGameHomeTeam.addView(tvHomeTeamScore);
tlGames.addView(trGameHomeTeam,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
}
当我最初运行我的应用程序时,当前日期的游戏已正确列出。然后,一旦我单击下周链接,它应该重新加载此页面并显示新一周的游戏。相反,我收到一条错误消息“指定的孩子已经有一个父母。您必须首先在孩子的父母上调用 removeView()。” 我添加了一个“tlGames.removeAllViews();” 紧跟在 TableLayout tlGames 行之后,但这并没有纠正错误。
唯一的地方是我有“addView”是用于创建表格行或表格行中的文本视图。
谁能告诉我我做错了什么?
谢谢