[英]How to implement pagination in list view in android
如何在Android的列表视图中实现分页? 我必须每页显示10条记录。 如果用户单击下一步按钮,则我必须显示另外10条记录,依此类推。 有人可以告诉我该怎么做吗?
谢谢
只需将前10个项目添加到适配器中并显示它即可。 如果您的用户单击下一步,请更改适配器内的数据,然后调用notifydatasetchanged()。 这将重新加载列表中的新项目。 但是我认为仅显示几个项目而不是所有可能的项目并不是一个很好的设计。 就个人而言,这会让我发疯。
制作一个自定义适配器。 使用ArrayList
填充Listview
,然后将十个项目添加到ArrrayList
并调用adapter.notfiyDataSetChange()
。 当用户单击“下一步”按钮时,从ArrrayList
删除前十项,然后添加下十项,然后再次调用adapter.notfiyDataSetChange()
。
尝试执行以下步骤:
首先,您必须在listView中提供按钮,用户可使用该按钮加载下一个10条记录,如下所示:-
//LoadMore Button
Button btnLoadMore = new Button(this);
btnLoadMore.setText("Load More");
//Adding Load More button to listview at bottom
lview.addFooterView(btnLoadMore);
并使用自定义采用者:
adapter = new myAdapter(this, record1, record2, stringArray);
lview.setAdapter(adapter);
现在
/**
* Listening to Load More button click event
* */
btnLoadMore.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// Starting a new async task
new loadMoreListView().execute();
}
}
然后用
/**
* Async Task that send a request to url
* Gets new list view data
* Appends to list view
* */
private class loadMoreListView extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... unused) {
runOnUiThread(new Runnable() {
public void run() {
(put your logic for load data)
//get listview current position - used to maintain scroll position
int currentPosition = lview.getFirstVisiblePosition();
adapter = new myAdapter(NewsActivity.this, record1, record2, stringArray);
lview.setAdapter(adapter);
// Setting new scroll position
lview.setSelectionFromTop(currentPosition + 1, 0);
}
});
return (null);
}
希望这会帮助您...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.