Я создаю приложение для Android, в котором есть эта база данных:
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS snacks (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT, " +
"disc TEXT, " +
"photo TEXT, " +
"thumb TEXT, " +
"ingre TEXT, " +
"howto TEXT, " +
"info TEXT, " +
"snackId INTEGER)";
db.execSQL(sql);
ContentValues values = new ContentValues();
values.put("name", "Name 1");
values.put("disc", "here is the description");
values.put("photo", "stub.png");
values.put("thumb", "stub.png");
values.put("ingre", "the ingredients of the snack");
values.put("howto", "how to make this thing");
values.put("info", "basically its this much calorie and such and such");
db.insert("snacks", "name", values);...............etc etc ......`
В одном из моих занятий у меня есть панель поиска, которая может запрашивать базу данных.Результаты отображаются в виде списка.Когда я нажимаю на один элемент в списке, я получаю информацию о нем, включая фотографию.Мои фотографии находятся в папке активов.Я хочу получить фотографию из папки ресурсов и отобразить ее миниатюру.Я попытался использовать диспетчер активов, как это
public void search(View view) {
cursor = db.rawQuery("SELECT _id, name, disc, thumb FROM snacks WHERE name LIKE ?", new String[]{"%" + searchText.getText().toString() + "%"});
adapter = new SimpleCursorAdapter(
this,
R.layout.cook_tab_snackslist,
cursor,
new String[] {"name", "disc"},
new int[] {R.id.name, R.id.disc});
Thumb = (ImageView) findViewById(R.id.thumb);
try {
InputStream bitmap=getAssets().open(cursor.getString(cursor.getColumnIndexOrThrow("thumb")));
Bitmap bit=BitmapFactory.decodeStream(bitmap);
Thumb.setImageBitmap(bit);
} catch (IOException e1) {
e1.printStackTrace();
}
setListAdapter(adapter);
}
Я понимаю, что это не правильно, и я получаю следующую ошибку:
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 7
Что я могу сделать?Я даже иду об этом правильным путем?