SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
-
powercat
- Сообщения: 508
- Зарегистрирован: 20 июл 2012, 11:31
Сообщение
powercat » 27 авг 2012, 18:04
Не могу понять в чем проблема: вот такой код работает отлично и удаляет файл
Код: Выделить всё
long myInt=adapterContextMenuInfo.id;
String myRow="SELECT * FROM mainTable WHERE _id="+myInt;
cursor=db.rawQuery(myRow, null);
if (cursor.moveToFirst()){
String localPath=cursor.getString(cursor.getColumnIndex("pathToFile"));
File_Works.FileDelete(localPath);//Удаление файла
}
Этот же код, но без IFа:
Код: Выделить всё
long myInt=adapterContextMenuInfo.id;
String myRow="SELECT * FROM mainTable WHERE _id="+myInt;
cursor=db.rawQuery(myRow, null);
//if (cursor.moveToFirst()){
String localPath=cursor.getString(cursor.getColumnIndex("pathToFile"));
File_Works.FileDelete(localPath);//Удаление фото
//}
Не работает, выдает ошибку что-то там с курсором, выдает не в логкате, а как-бы закладку в дебагере делает вот такую:
- Debug - android.database.png (30.15 КБ) 3758 просмотров
Вопрос - где я туплю??
-
neoksi
- Сообщения: 712
- Зарегистрирован: 26 июл 2012, 10:42
-
Контактная информация:
Сообщение
neoksi » 27 авг 2012, 18:15
cursor.moveToFirst() - этой командой, ты выставляешь каретку курсора на первую запись, в случае удачи выставления каретки курсора, метод возвращает true.
Если в курсоре не выставлена каретка, то и данные ты не сможешь прочитать.
-
powercat
- Сообщения: 508
- Зарегистрирован: 20 июл 2012, 11:31
Сообщение
powercat » 27 авг 2012, 20:53
Т.е. ВСЕГДА при работе с курсором его надо перикидывать в начало??
-
rezak90
- Сообщения: 3422
- Зарегистрирован: 26 июн 2012, 13:22
- Откуда: UA
-
Контактная информация:
Сообщение
rezak90 » 27 авг 2012, 21:11
powercat писал(а):Т.е. ВСЕГДА при работе с курсором его надо перикидывать в начало??
не обязательно, просто в данном примере что бы пройтись по всем строкам курсора следует сначала перейти к первому, и тем более moveToFirst() не только передвигает курсор к началу но и даёт понять есть ли записи в нём. А так ты можешь перейти на любую запись moveToPosition(position), но если она существует
R.id.team
Политика на форуме запрещена
-
neoksi
- Сообщения: 712
- Зарегистрирован: 26 июл 2012, 10:42
-
Контактная информация:
Сообщение
neoksi » 27 авг 2012, 23:34
powercat писал(а):Т.е. ВСЕГДА при работе с курсором его надо перикидывать в начало??
Ну если ты его только инициировал, то тогда обязательно каретке хоть какую-то позицию определить, не обязательно в начале курсора.
-
powercat
- Сообщения: 508
- Зарегистрирован: 20 июл 2012, 11:31
Сообщение
powercat » 28 авг 2012, 09:24
Понятно...тогда может это как-то добавить в урок...ну сделать приписку об этом?