2013-03-15 70 views
0

我有一個的LinearLayout我編程方式與一個TableLayout使用的代碼更新:(對於更多的背景參見Android RelativeLayout alignment based on View added programmatically的LinearLayout不與TableLayout更新編程

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

第一次方法updateTableView是稱它工作正常。但LinearLayout似乎忽略了後續的所有調用。我知道這是因爲data每次都有所不同,但該應用只顯示第一次致電updateTableView的結果,即視圖沒有改變。

回答

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); 
} 
+1

酷!現在正在工作。我只是爲我的具體情況調用'removeAllViews()'。 – learner 2013-03-15 00:54:28

+1

太好了。對不起,我在我的代碼中有一個bug,應該先調用removeView(這樣它會刪除舊的而不是新的)。我現在更新了我的代碼。 – Caner 2013-03-15 01:00:34