0

我有一个 LinearLayout,我使用以下代码以编程方式使用 TableLayout 进行更新:

public void updateTableView(MyData data){
  DataTable dataTable = new DataTable(getApplicationContext(), data);
  LinearLayout placeHolder = (LinearLayout) findViewById(R.id.rel_view);
  placeHolder.addView(dataTable);
}

(有关更多背景信息,请参阅基于以编程方式添加的 View 的 Android RelativeLayout 对齐。)

第一次updateTableView调用该方法时,它工作正常。但是 LinearLayout 似乎忽略了所有后续调用。我知道这是因为data每次都不同,但应用程序只显示第一次调用的结果updateTableView,即视图没有改变。

4

1 回答 1

0

可能是因为您没有删除以前添加DataTable的视图。尝试调用removeView()

private DataTable dataTable;

public void updateTableView(MyData data) {
  if (dataTable != null) {
      placeHolder.removeView(dataTable);
  }
  dataTable = new DataTable(getApplicationContext(), data);
  LinearLayout placeHolder = (LinearLayout) findViewById(R.id.rel_view);
  placeHolder.addView(dataTable);
}
于 2013-03-15T00:45:20.397 回答