我有一個列表視圖有100個項目,我想顯示前10個項目,點擊下一個按鈕我必須顯示下一個10即。 11至20,我有代碼獲得前10項如何限制列表中的列表項顯示在10和下一個10之後點擊下一步按鈕
public int getCount() {
return 10;
}
但如何獲得下10項單獨等。 任何想法
我有一個列表視圖有100個項目,我想顯示前10個項目,點擊下一個按鈕我必須顯示下一個10即。 11至20,我有代碼獲得前10項如何限制列表中的列表項顯示在10和下一個10之後點擊下一步按鈕
public int getCount() {
return 10;
}
但如何獲得下10項單獨等。 任何想法
的一種方法是,
1)不要與所有的數據填充的ArrayList。請將它們保存在單獨的ArrayList(al1
)中,並使用帶有最大10個值的ArrayList(al2
)與BaseAdapter配合使用。
2)首先,
3)保持BaseAdapter,因爲它是但變化
@Override
public int getCount() {
return 10;
}
到
@Override
public int getCount() {
return data.size();
}
這不是必須的,但它是很好的做法。現在,您將只顯示10個項目,因爲這是您傳遞給適配器的所有內容。在擴展的BaseAdatper類中寫一個公共函數來設置data
變量。
4)在下一個按鈕單擊事件獲取從al1
接下來的10個項目,並分配給al2
。使用你寫的公共函數寫data
與al2
。
5)BaseAdapter has a method called notifyDataSetChanged,叫它。它所做的是告訴適配器從頂部到底部刷新。由於您在發生刷新時用data
重寫了新數據,因此您將看到新數據。而已。
我不認爲你會想出一種方法來跟蹤你目前顯示的al1
中的哪個索引。 :)
如果您有100個項目,那麼只需拿到適配器的前10個項目,並且當用戶按下下一個時,獲取下一個10個項目,依此類推。
編輯:在請求代碼,我可以提供一個簡單的例子,如何做分頁。
int totalItems = 100;
int currentPage = 0;
int pageSize = 10;
int numPages = (int) Math.ceil((float) totalItems/pageSize);
ArrayList<String> items = new ArrayList<String>(totalItems);
List<String> page = items.subList(currentPage, pageSize);
看看上面的例子中,給出的項目數和所需的頁面大小就可以計算出你需要多少頁顯示,則可以選擇從ArrayList的子列表。每次用戶按next時,遞增currentPage並使用新的子列表刷新適配器。要做到這一點
看看這個例子:http://pastebin.com/UmjBqpsP – jlopez 2013-02-14 07:25:53
http://stackoverflow.com/questions/1080811/android-endless-list http://www.androidhive。info/2012/03/android-listview-with-load-more-button/ – rajeshwaran 2013-02-14 07:27:05
我必須只使用一個listview,並且它必須單獨顯示下一個19而不是1到10 – saran 2013-02-14 07:31:09