2014-10-31 48 views
0

我'停留約2小時,以嘗試創建誰是倍數infalted佈局在it.My代碼編程的TableRow tablerow的是這樣的:addView在for循環

LayoutInflater inflater = LayoutInflater.from(this); 
TableLayout tblLayout = inflater.inflate(R.layout.tblL,parent,false); 
TableRow tableRow = (TableRow) tblListItems.findViewById(R.id.tableRow); 
View headerCell = inflater.inflate(R.layout.header_col,tblListItems,false); 
TextView tvCellName = (TextView) headerCell.findViewById(R.id.tvCellName); 

    for(String item: items) { 

     tvCellName.setText(item); 

     tableRow.addView(tvCellName); 
    } 

relativeLayout2.addView(tblLayout); 

錯誤我得到:

The specified child already has a parent. You must call removeView() on the child's parent first.

什麼我'做錯了,我應該怎麼做是正確的?

回答

0

一個視圖只能有一個父級。您試圖一遍又一遍地添加相同的視圖。

for(String item: items) { 

    tvCellName.setText(item); 

    tableRow.addView(tvCellName); // this will add the same view. 
} 

如果你想添加你需要動態地創建視圖,該for內另一種觀點,而不是它充氣,如:

tvCellName = new TextView(this);//this creates a new view, that doesn't have a parent. 

編輯

虛增您的意見裏面的爲:

View headerCell; 
TextView tvCellName; 
for(String item: items) { 
     headerCell = inflater.inflate(R.layout.header_col,tblListItems,false); 
     tvCellName = (TextView) headerCell.findViewById(R.id.tvCellName); 
     tvCellName.setText(item); 
     tableRow.addView(tvCellName); 
    } 
+0

問題是我的TextVi新聞來源需要來自充氣的佈局。 'TextView tvCellName =(TextView)headerCell.findViewById(R.id.tvCellName);' – TGeorge 2014-10-31 16:32:44

+0

您需要動態創建視圖。你的問題不是這個。你的問題是一個視圖**不能**被添加多次。 – 2014-10-31 16:34:08

+0

對不起。問題是我不需要將'tvCellName'添加到'tableRow'。我需要在表格行中添加'headerCell',它有一個'TextView'。 – TGeorge 2014-10-31 16:37:57