2010-12-14 23 views
1

基本上,我希望能夠通過我的BaseAdapter類在同一活動中使用兩個ListViews。 ListViews將並排顯示,並且ListView中的每個項目都將包含多個視圖(ImageView,TextView等)。我怎麼能用BaseAdapter來使用兩個ListView?

我的主要問題是通過從BaseAdapter繼承的getView()方法來檢索/顯示數據。我將如何去檢測哪個ListView正在通過此方法進行更新,以便我知道哪些代碼要調用/更新?我試着在getView()中查看ViewGroup參數,希望它引導我到ListItem的父項,但它返回的id與我的ListView的資源ID不同......事實上,它甚至不在我的R中。 Java文件都:

12-14 04:44:58.613: ERROR/ParentFromGetView(312): 16908298 
12-14 04:44:58.623: ERROR/MyListViewId(312): 2131165191 

希望做一些像這樣:

public View getView(int position, View convertView, ViewGroup parent) { 
    if (parent.getId() == R.id.ListView1) { 
     //Do stuff 
    } else if (parent.getId() == R.id.ListView2) { 
     //Do different stuff 
    } 
} 

...但ID被大幅關閉由上述可見。

在此先感謝!

+0

爲什麼要爲兩個不同的列表視圖使用相同的適配器實例?即使它是相同的數據,也沒有理由使它成爲相同的適配器實例... – 2010-12-14 10:35:57

+0

好吧,我希望他們都能在相同的活動上運行。目前,我將我的活動擴展爲ListActivity,並相應地設置了適配器。數據完全不同。在這裏有什麼我失蹤...?! – BCS 2010-12-14 10:48:04

回答

0

您不能在兩個ListViews之間共享ListAdapter

那麼,我希望他們都在同一個活動上運行。

那麼,

目前我正在將我的活動擴展爲ListActivity,並相應地設置了適配器。

隻影響兩個ListViews之一,哪一個有@android:id/list值。您需要創建第二個ListAdapter供第二個ListView使用。通過調用findViewById()獲得第二個ListView,並通過setAdapter()將適配器與ListView關聯。