【发布时间】:2012-02-19 23:07:06
【问题描述】:
我有一个页面,其中会显示某项选定运动的为期数周的预定比赛。选定的运动和星期存储在页面开头打开的 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”的唯一地方是用于创建表格行或表格行中的文本视图。
谁能告诉我我做错了什么?
谢谢
【问题讨论】:
-
信息不足。我们能看到所有的 onCreate 方法、下周监听器和 xml 吗?
-
在此处发布完整的堆栈跟踪。
-
请把整个活动代码放在这里。还有布局。
标签: android android-layout layoutparams