我有一个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
的结果,即视图没有变化。
答案 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);
}