0

次のコードを使用して、TableLayoutでプログラムで更新するLinearLayoutがあります。

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

(背景については、プログラムで追加されたビューに基づく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 に答える