2010-06-16 25 views
2

有一個要求不那麼平凡的動態列表,其中每個記錄由幾列(文本,按鈕)組成。它應該是這個樣子:Android中的花式動態列表:TableLayout vs ListView

Text11 Text12 Button1 Button2 
Text21 Text22 Button1 Button2 
... 

在第一個明顯的方式來實現這一目標似乎是TableLayout。我希望在res/layout/*。xml中指定佈局/樣式數據並使用java代碼中的某些數據集填充它(與ListView一樣,可以在* .xml中指定TextView項目並將其綁定到一些數組使用ArrayAdapter)。但玩了一段時間後,我發現所有可能的是編程完全填充TableLayout。仍然,通過TableRow創建TableRow並直接在java代碼中設置佈局屬性似乎不夠優雅。

所以問題是:我在正確的道路? TableLayout真的是最好的觀點來實現這一目標嗎?也許延長ListView或其他方式來滿足這些要求更合適?

回答

4

使用ListView和ArrayAdapter,您可以執行比TextView更復雜的佈局。您可以爲列表中的每一行指定帶有2個TextView和2個按鈕的LinearLayout。

這裏有一個類似的問題 Android: ListView elements with multiple clickable buttons

+0

由於您的答案我重新考慮了ListView,並且設法使其按需工作,謝謝。 – Ralkie 2010-06-17 08:51:31

+1

仍然沒有回答這個問題。是否有可能使用ArrayAdapter填充TableLayout – Nayn 2010-06-25 17:02:17

+0

@Nayn - 當然它是*可能*。這是值得的努力,而不是僅僅使用正確的工具(ListView)?可能不會,所以詹姆斯的回答滿足了這個問題。 – kiswa 2010-07-15 14:54:12

1

恕我直言,這取決於你的數據,你需要渲染的數量。

通過膨脹/ addView通過dinamically構建佈局是一項相當簡單的任務,但是它的速度比使用自定義適配器還要慢。使用自定義適配器,您可以 重用convertView參數,然後更有效地設置值