2012-11-28 46 views
0

我正在使用LinearLayout創建ListView。我這樣做是因爲我想把這個列表放入ScrollView。以下是我如何使用LinearLayout創建列表。重新加載使用LinearLayout創建的列表視圖

adapter = new BookingSessionListAdapter(this,null, appDeleg); 
LinearLayout ll = (LinearLayout)this.findViewById(R.id.listLayout); 

LinearLayout.LayoutParams layoutParams = 
newLinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, 
LinearLayout.LayoutParams.WRAP_CONTENT); 

for (int i = 0; i < adapter.getCount(); i++) 
{  
    View item = adapter.getView(i, null, null);  
    ll.addView(item,layoutParams); 

} 

現在我想刷新列表。我怎樣才能做到這一點?

感謝

+1

列表視圖中刪除所有ViewsLinearLayout並添加Views是滾動吧?? – Raghunandan

+0

不要在滾動視圖中放置列表視圖。 從42:50開始:http://www.youtube.com/watch?v=wDBM6wVEO70 – sinisha

回答

0

你必須做自己的工作,這與ListView的自由通常是。很難拿出一個解決方案不知道任何關於您的資料(有多少項目等)

的一種方式將是您從您的LinearLayout各方意見,再添加新的觀點:

protected void notifyDataChange() { 
    ll.removeAllViews(); 
    for (int i = 0; i < adapter.getCount(); i++) {  
     View item = adapter.getView(i, null, null);  
     ll.addView(item,layoutParams); 
    } 
} 

但是,我會重新考慮你的整個方法,因爲ListView/Adapter會爲你做所有繁重的工作(內存管理/緩存視圖等)。

HTH。

1

首先讓我告訴你,你正在使用一個真正的原油實現來顯示List。您可能會考慮使用ListView來代替重塑車輪。然而,這是一段粗略的代碼,它將根據新的BookingSessionListAdapter中的數據刷新您的List

public void refreshList(BookingSessionListAdapter adapter, LinearLayout ll, 
     LinearLayout.LayoutParams layoutParams) { 
    ll.removeAllViews(); 
    for (int i = 0; i < adapter.getCount(); i++) { 
     View item = adapter.getView(i, null, null); 
     ll.addView(item, layoutParams); 

    } 
} 

這樣做有什麼根據自身新BookingSessionListAdapter

+0

我必須在scrollview中放置一個listview。所以在這種情況下,listview不是一個選項。那是我用過的。 – Zach

+0

我明白了,但以後可能會遇到問題。如果您發現我的解決方案有用,請介意接受我的答案嗎? –