Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中ListView滚动的SQlite分页_Android_Sqlite_Listview_Pagination - Fatal编程技术网

Android中ListView滚动的SQlite分页

Android中ListView滚动的SQlite分页,android,sqlite,listview,pagination,Android,Sqlite,Listview,Pagination,我一直在安卓系统中实现分页。我需要帮助在列表视图滚动结束时使用Sq lite本地数据库创建分页。我试图在每页添加10个项目,并在列表视图滚动结束时将本地页面索引增加到5倍,然后在列表视图中附加接下来的10个Sq lite数据行,但我的代码有点问题。当我第二次滚动页面时,只创建了1个页面大小,页面大小没有增加1,并且进度条在有争议地运行。有人能帮我解决这个问题吗 这是我的ListView滚动代码 listView.addFooterView(footer); // Implemen

我一直在安卓系统中实现分页。我需要帮助在列表视图滚动结束时使用Sq lite本地数据库创建分页。我试图在每页添加10个项目,并在列表视图滚动结束时将本地页面索引增加到5倍,然后在列表视图中附加接下来的10个Sq lite数据行,但我的代码有点问题。当我第二次滚动页面时,只创建了1个页面大小,页面大小没有增加1,并且进度条在有争议地运行。有人能帮我解决这个问题吗

这是我的ListView滚动代码

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 * 10 ;
                                //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);

                                }
                            }
                        }, 8000);
                    }
                } else {
                    Log.e("hide footer", "footer hide");
                    listView.removeFooterView(footer);
                }
            }
        });
listView.addFooterView(页脚);
//实现滚动刷新
setOnScrollListener(新的AbsListView.OnScrollListener(){
@凌驾
CrollStateChanged上的公共无效(AbsListView AbsListView,int i){
}
@凌驾
public void onScroll(AbsListView AbsListView、int firstItem、int visibleItemCount、final int totalItems){
//Log.e(“获取位置”,“--firstItem:+firstItem+”visibleItemCount:“+visibleItemCount+”totalItems:“+totalItems+”pageCount:”+pageCount);
int total=firstItem+visibleItemCount;
Log.e(“,”onScrollLocalPages=“+LocalPages”);
//总数组列表我有这么多吗
如果(页面计数<本地页面){
如果(总计==总计项目){
//8秒后执行一些代码
Handler=newhandler();
handler.postDelayed(新的Runnable()
{
公开募捐
{
添加页脚视图(页脚);
偏移量=页数*10;
//Log.e(“,”在OFFSET pageCount=“+pageCount+”OFFSET value=“+OFFSET”)之后;
List allDesc=dbhelper.getAllDescriptions(偏移量);
for(所有发布所有发布:所有描述)
{
descArray.add(所有_Post);
}
if(适配器!=null)
{
adapter.notifyDataSetChanged();
setAdapter(适配器);
listView.setSelection(totalItems);
页面计数+=1;
Log.e(“,”pageCount=“+pageCount+”LocalPages=“+LocalPages”);
}
}
}, 8000);
}
}否则{
Log.e(“隐藏页脚”、“页脚隐藏”);
移除页脚视图(页脚);
}
}
});

感谢advanced。

完全不需要分页:我有一个有50000行的表,它可以正常工作,有一件事:使用
[Simple]CursorAdapter
但我想实现分页。然后编写自定义
SimpleCursorAdapter
并覆盖
getCount
getView
方法,它应该用少于10行的有效代码来完成,因为这真的是一个简单的案例实际上基本实现需要5行代码,但这取决于你想要实现什么…好吧,所以我发布这个链接只是因为你已经为此奋斗了一周:,下次看一些教程,了解如何在使用sqlite数据库时使用
SimpleCorsOrAdapter
,根本不需要分页:我有一个包含50000行的表,它可以正常工作,有一件事:使用
[Simple]CursorAdapter
但我想实现分页。然后编写自定义的
SimpleCursorAdapter
并重写
getCount
getView
方法,它应该用少于10行的有效代码来完成,因为这真的是一个简单的案例实际上基本实现需要5行代码,但这取决于你想要实现什么…好吧,所以我发布这个链接只是因为你已经为此奋斗了一周:,下次看一些教程,了解如何在使用sqlite db时使用
SimpleCorsOrAdapter