2010-08-19 245 views
0

我想在表格中創建5種不同類型的單元格以及標識符,並根據給定的數據適當地加載它們,具體取決於類型? 在TableLayout中創建TableRow似乎是其中一個選項,但是如何根據類型動態創建tableRows?動態加載表格中的自定義表格單元

Thanx提前。

回答

0

你能檢測執行時間類型嗎?如果是的話,它應該直接使用開關或if結構。

要在運行時膨脹的XML資源依賴於該行使用類型:

((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)) 
.inflate(layoutId, yourTableLayout, true); 

設置此時,相應的膨脹的資源,然後進行前layoutId。參數yourTableLayouttrue只是我的猜測,請檢查文檔LayoutInflater並選擇適合您需要的充氣方法。

要創建TableRows動態,這個教程可以幫助:Creating TableRow rows inside a TableLayout programatically

基本上:

1-抓取TableLayout和創建的TableRow

// Get the TableLayout 
TableLayout tl = (TableLayout) findViewById(R.id.maintable); 

TableRow tr = new TableRow(this); 
tr.setId(100+current); 
tr.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 

2-創建元素添加

TextView labelTV = new TextView(this); 
labelTV.setId(200+current); 
labelTV.setText(provinces[current]); 
labelTV.setTextColor(Color.BLACK); 
labelTV.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
tr.addView(labelTV); 

3-的TableRow添加到TableLayout

// Add the TableRow to the TableLayout 
tl.addView(tr, new TableLayout.LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 

似乎是方便,快捷,我沒有壽進行了測試。

+0

由於tableRows是不同類型[5個不同類型],添加的元素是不同的。我想用一些標識符將其保存在xml中,並在運行時加載適當的標識符。可能嗎? – neha 2010-08-19 13:03:25

+0

我已經更新了答案,我希望澄清你的問題。 – Maragues 2010-08-20 08:49:45

相關問題