0

如何在android的列表视图中实现分页?我必须每页显示 10 条记录。如果用户单击下一个按钮,我必须显示另外 10 条记录,依此类推。谁能告诉我该怎么做?

谢谢

4

3 回答 3

0

尝试执行以下步骤:-

首先,您必须在 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);
}

希望这会帮助你...

于 2012-05-14T13:57:24.390 回答
0

只需将前 10 个项目添加到您的适配器中并显示它。如果您的用户单击下一步,请更改适配器内的数据并调用 notifydatasetchanged()。这将使用新项目重新加载列表。但我认为只显示几个项目而不是所有可能的项目并不是一个很好的设计。就个人而言,这会让我发疯。

于 2012-05-14T13:05:05.107 回答
0

制作一个自定义适配器。填充然后将十个项目添加到Listview并调用. 当用户单击下一步按钮时,从中删除前十项并添加下十项,然后再次调用。ArrayListArrrayListadapter.notfiyDataSetChange()ArrrayListadapter.notfiyDataSetChange()

于 2012-05-14T13:10:04.877 回答