2012-05-15 61 views
2

我想在android中創建動態表格(自定義行數和列數)。最小的SDK 3.0在android中創建動態表格。新視圖vs inflater

我通過2種方式一個猜想箱吧:通過經吹氣創造新的TextView

TableRow tr = ....; 

for (i = 0; i < NumOfRows ....) { 
    TextView tv = new TextView(this); 
    tv.setLayoutParams(...); 
    tv.setText("Text I wanna to see"); 
    tr.add(tv); 
} 

2)

LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

for (i = 0; i < NumOfRows ....) { 
    TextView tv = (TextView) mInflater.inflate(R.layout.my_cell_layout, null, false) 
        .findViewById(R.id.my_cell_item); 
    tv.setText("Text I wanna to see"); 
    tr.add(tv); 
} 

1))你方式:)

什麼是更快?我應該選擇什麼? enter code here

回答

4

這都是根據您的要求,哪個更好。

從鏈接http://www.aslingandastone.com/2010/dynamically-changing-android-views/

因爲佈局可以在XML或代碼創建,你也許可以湊合而不必做動態XML佈局加載。這就是說,爲什麼我認爲可以這樣做有一些明顯的優勢:

代碼清潔。除了代碼中的基本佈局之外,做任何事都會變得非常混亂,速度非常快。 代碼重用。使用一行或兩行代碼將XML佈局充氣到指定視圖非常容易。創建代碼佈局所需的對象會導致不必要的垃圾收集。根據Android設計性能文章,「儘量避免創建短期臨時對象」。 屬性可用性。在XML佈局中定義視圖會公開對象方法並不總是可用的屬性。

* 可能的缺點:

它使需要更多的時間做一個XML佈局與定義代碼的佈局,特別是如果只有有需要改變一個或兩個界面元素。 *

0

要找出哪個更快,請實施這兩種方法並使用方法分析實用程序TraceView。也就是說,進行更改時更容易維護XML文件,而不是修改代碼。所以,如果我是你,我更喜歡技術#2。