我有一個擴展BaseAdaptor並覆蓋getItemViewType(int position)函數的類。當我交換遊標或通知數據集更改時,傳入的位置值始終爲0.但是,如果我在getItemViewType中放置調試點並調用getCount,則返回值爲4.同樣,調用getItem(0), getItem(1),getItem(2)和getItem(3)從相同的調試點都返回有效的結果。getItemViewType位置始終爲0
任何想法爲什麼位置不會迭代[0,1,2,3]?
我有一個擴展BaseAdaptor並覆蓋getItemViewType(int position)函數的類。當我交換遊標或通知數據集更改時,傳入的位置值始終爲0.但是,如果我在getItemViewType中放置調試點並調用getCount,則返回值爲4.同樣,調用getItem(0), getItem(1),getItem(2)和getItem(3)從相同的調試點都返回有效的結果。getItemViewType位置始終爲0
任何想法爲什麼位置不會迭代[0,1,2,3]?
可能因爲getTypeCount
返回「1」 - 所以沒有必要實際遍歷「position」 - Android假定所有視圖類型都是相同的。
你或許應該重寫方法:
public int getViewTypeCount() {
return 1;
}
但首先,要確保你知道那是什麼。只有當你有不同的類型的數據,沒有不同的值。看到這個帖子:
getViewTypeCount and getItemViewType methods of ArrayAdapter
的這裏的問題是,我的ListView的高度是太小了,所以只有第一行是有朝一日能呈現,因爲其他人不可見。
如果你的getViewTypeCount是1,它不會多次調用getViewType()。getViewType()的目的是如果你的adapterView中有不同的佈局。 – NameSpace