如何在Android中从SQLite数据库实现ListView分页? [英] How to implement ListView Pagination from SQLite database in Android?

查看:78
本文介绍了如何在Android中从SQLite数据库实现ListView分页?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从我已经完成的 SQLite 数据库中实现列表视图.但现在我想在列表视图 setOnScrollListener 上实现分页.第一次我显示前 50 条记录之后,当我在列表末尾滚动时,运行进度条几秒钟,然后停止进度条再显示下 50 条记录追加到列表中.自从 5 天以来,我在列表视图分页上尝试了很多时间,但它无法正常工作.有人可以帮我解决这个问题吗?

I want to implement List-View from SQLite Database that i have done. But right now i want to implement pagination on List View setOnScrollListener.First time I'm displaying first 50 records after that when I scroll at the end of list run the progress bar some amount of second and after stop the progress bar another next 50 records append to the list.I'm trying lot of time since 5 days working on List View Pagination but it is not working properly.Can some one help me to resolve this issue.

这是我的代码.

listView.addFooterView(footer);
        // Implementing scroll refresh
        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {
            }

            @Override
            public void onScroll(AbsListView absListView, int firstItem, int visibleItemCount, final int totalItems) {
                //Log.e("Get position", "--firstItem:" + firstItem + "  visibleItemCount:" + visibleItemCount + "  totalItems:" + totalItems + "  pageCount:" + pageCount);
                int total = firstItem + visibleItemCount;

               Log.e("", "onScroll LocalPages=" + LocalPages);
                // Total array list i have so it
                if (pageCount < LocalPages) {

                    if (total == totalItems) {

                        // Execute some code after 8 seconds have passed
                        Handler handler = new Handler();
                        handler.postDelayed(new Runnable()
                        {
                            public void run()
                            {
                                listView.addFooterView(footer);
                                OFFSET = pageCount * 50 ;
                                //Log.e("","After OFFSET pageCount =" + pageCount + "  OFFSET value ="+OFFSET);
                                List<All_Post> allDesc = dbhelper.getAllDescriptions(OFFSET);
                                for (All_Post all_Post : allDesc)
                                {
                                    descArray.add(all_Post);
                                }
                                if(adapter != null)
                                {
                                    adapter.notifyDataSetChanged();
                                    listView.setAdapter(adapter);
                                    listView.setSelection(totalItems);

                                    pageCount += 1;
                                    Log.e("","  pageCount =" + pageCount + " LocalPages="+LocalPages);

                                }
                            }
                        }, 2000);
                    }
                } else {
                    Log.e("hide footer", "footer hide");
                    listView.removeFooterView(footer);
                }
            }
        });

推荐答案

您可以按照以下方法执行此操作.

You can do this for following approach.

                        // create one final list
                        final ArrayList<String> temp = new ArrayList<String>();
                        temp.addAll(previous_data);

                        // call fxn for getting new value
                        // call your database query

                        // add new data into list
                        temp.addAll(new_Data);
                        // intailize static list of adapter showing data
                        // add data into list.
                        ActivityName.MainList = temp;

                         mAdapter.notifyDataSetChanged();

还有你的代码......谢谢

with your code also... thanks

这篇关于如何在Android中从SQLite数据库实现ListView分页?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆