Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 SQlite中一次运行一个查询_Android_Image_Sqlite_Listview - Fatal编程技术网

如何将查询拆分为较小的查询,并在android SQlite中一次运行一个查询

如何将查询拆分为较小的查询,并在android SQlite中一次运行一个查询,android,image,sqlite,listview,Android,Image,Sqlite,Listview,我有一个listview,它应该显示25行数据,但是在数据库中有图像,当达到13行时,查询已经超过1mb,正如我在这里引用的 CursorWindow类仅支持每次查询读取1MB数据: #定义最大窗口大小(1024*1024) 所以我想,如果我可以将查询拆分成更小的查询,一次运行一个,然后在listview中显示这些项,可能会更好 这是我的密码 mDB = new ChannelDB(this); String[] columns = {mDB.KEY_ID, mDB.KEY_

我有一个listview,它应该显示25行数据,但是在数据库中有图像,当达到13行时,查询已经超过1mb,正如我在这里引用的

CursorWindow类仅支持每次查询读取1MB数据:

#定义最大窗口大小(1024*1024)

所以我想,如果我可以将查询拆分成更小的查询,一次运行一个,然后在listview中显示这些项,可能会更好

这是我的密码

mDB = new ChannelDB(this);

        String[] columns = {mDB.KEY_ID, mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_PATH, mDB.KEY_DBLINK};
        String   table   = mDB.channelS_TABLE;

        c = mDB.getHandle().query(table, columns, null, null, null, null, null);

        startManagingCursor(c);

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                R.layout.channelview,
                c,
                new String[] {mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_DBLINK},
                new int[] {R.id.poster, R.id.channel, R.id.douban});

        adapter.setViewBinder(new ChannelViewBinder(this));

        channellist.setAdapter(adapter);

        channellist.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                c.moveToPosition(position);
                String xPath=c.getString(c.getColumnIndex(mDB.KEY_PATH));
                String xName=c.getString(c.getColumnIndex(mDB.KEY_CHANNEL));
                String xDBlink=c.getString(c.getColumnIndex(mDB.KEY_DBLINK));
                Intent intent = new Intent();
                intent.setClass(HDtvs.this,Showlist.class);
                intent .putExtra("path",xPath);
                Log.i("HDtvs", "path = " + xPath);
                intent .putExtra("cname",xName);
                intent .putExtra("dblink",xDBlink);
                startActivity(intent);
            }
        }); 
mDB=newchanneldb(此);
String[]columns={mDB.KEY\u ID,mDB.KEY\u POSTER,mDB.KEY\u CHANNEL,mDB.KEY\u PATH,mDB.KEY\u DBLINK};
String table=mDB.channelS\u table;
c=mDB.getHandle().query(表、列、null、null、null、null、null);
开始管理光标(c);
SimpleCrsorAdapter=新的SimpleCrsorAdapter(此,
R.layout.channelview,
C
新字符串[]{mDB.KEY_POSTER,mDB.KEY_CHANNEL,mDB.KEY_DBLINK},
新int[]{R.id.poster,R.id.channel,R.id.douban});
adapter.setViewBinder(新的ChannelViewBinder(this));
channellist.setAdapter(适配器);
channellist.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
c、 移动位置(位置);
字符串xPath=c.getString(c.getColumnIndex(mDB.KEY_PATH));
String xName=c.getString(c.getColumnIndex(mDB.KEY_通道));
String xDBlink=c.getString(c.getColumnIndex(mDB.KEY_DBLINK));
意图=新意图();
setClass(HDtvs.this,Showlist.class);
putExtra(“路径”,xPath);
Log.i(“HDtvs”,“path=“+xPath”);
intent.putExtra(“cname”,xName);
intent.putExtra(“dblink”,xDBlink);
星触觉(意向);
}
}); 

如您所见,mDB.KEY_海报是存储在数据库中的图像。我试图将路径保存到数据库中,但没有成功,如果您能提供一种方法,并提供一个示例,这将同样有用,thx

使用限制和偏移量来翻页数据。

您可以添加一些教程的链接吗,我是初学者