0
我想在表格中創建5種不同類型的單元格以及標識符,並根據給定的數據適當地加載它們,具體取決於類型? 在TableLayout中創建TableRow似乎是其中一個選項,但是如何根據類型動態創建tableRows?動態加載表格中的自定義表格單元
Thanx提前。
我想在表格中創建5種不同類型的單元格以及標識符,並根據給定的數據適當地加載它們,具體取決於類型? 在TableLayout中創建TableRow似乎是其中一個選項,但是如何根據類型動態創建tableRows?動態加載表格中的自定義表格單元
Thanx提前。
你能檢測執行時間類型嗎?如果是的話,它應該直接使用開關或if結構。
要在運行時膨脹的XML資源依賴於該行使用類型:
((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(layoutId, yourTableLayout, true);
設置此時,相應的膨脹的資源,然後進行前layoutId。參數yourTableLayout和true只是我的猜測,請檢查文檔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));
似乎是方便,快捷,我沒有壽進行了測試。
由於tableRows是不同類型[5個不同類型],添加的元素是不同的。我想用一些標識符將其保存在xml中,並在運行時加載適當的標識符。可能嗎? – neha 2010-08-19 13:03:25
我已經更新了答案,我希望澄清你的問題。 – Maragues 2010-08-20 08:49:45