У меня есть просмотр списка, который должен показывать 25 строк данных, но с изображениями в базе данных, запрос превысил 1 МБ при достижении 13 строк и, как я здесь цитирую
Android SQLLite не может расти
Класс CursorWindow поддерживает чтение только 1 МБ данных на запрос:
#define MAX_WINDOW_SIZE (1024 * 1024)
, поэтому я подумал, что возможнобыло бы лучше, если бы я мог разделить запрос на более мелкие запросы и запускать их по одному, а затем показывать элементы в виде списка.
вот мои коды
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.KEY_POSTER - это изображение, хранящееся в базе данных.Я попытался сохранить путь в базе данных, но это не сработало, если вы можете предоставить способ сделать это с примером, который будет в равной степени полезен, thx