LinearLayout不以编程方式使用TableLayout更新

时间:2013-03-15 00:30:23

标签: android android-layout android-linearlayout

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

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

(有关更多背景信息,请参阅Android RelativeLayout alignment based on View added programmatically。)

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

1 个答案:

答案 0 :(得分: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);
}