0

Androidのリストビューでページネーションを実装するにはどうすればよいですか? 1 ページあたり 10 レコードを表示する必要があります。ユーザーが次のボタンをクリックすると、さらに 10 件のレコードを表示する必要があります。誰でもこれを行う方法を教えてもらえますか?

ありがとう

4

3 に答える 3

0

最初の 10 個のアイテムをアダプタに追加して表示するだけです。ユーザーが [次へ] をクリックした場合は、アダプター内のデータを変更し、notifydatasetchanged() を呼び出します。これにより、リストが新しいアイテムでリロードされます。しかし、可能性のあるすべてのアイテムではなく、いくつかのアイテムのみを表示するのは、本当に良いデザインではないと思います. 個人的には気が狂いそうだ。

于 2012-05-14T13:05:05.107 に答える
0

カスタム アダプターを作成します。を入力ListviewしてArrayListから、 に 10 個のアイテムを追加しArrrayListて呼び出しますadapter.notfiyDataSetChange()。ユーザーが次のボタンをクリックすると、最初の 10 個の項目が削除されArrrayList、次の 10 個の項目が追加されてから、再度呼び出されますadapter.notfiyDataSetChange()

于 2012-05-14T13:10:04.877 に答える
0

これらの手順を実行しようとしています:-

最初に、ユーザーが次の 10 個のレコードを読み込むために使用する listView にボタンを提供する必要があります。

//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 に答える