21.03.2015, 13:27. Просмотров 250. Ответов 0
Вот к примеру такой кусок кода. Из базы данных удаляется строчка. Как сделать перезагрузку базы и курсора.
Java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| case R.id.btnDellRec:
int idColumn=cur.getColumnIndex("_id");
int idRecordforDell=cur.getInt(idColumn);//вытаскиваем ID записи которую удаляем
int posCur=cur.getPosition();//запоминаем позицию курсора
//удаляем выбранную запись
db.delete("dictonary", "_id=?", new String[] { String.valueOf(idRecordforDell)});
//закрываем базу
cur.close();
db.close();
dictDB.close();
//все заново открываем
dictDB=new DictonaryDB(this);
db = dictDB.getWritableDatabase();
cur=db.query("dictonary", null, null, null, null, null, null);
if(!cur.moveToPosition(posCur) ){ //ставим позицию курсора если такой нет то на первую позицию
cur.moveToFirst();
}
//отправляем обратно позицию курсора в родительское активити
intent.putExtra("curPosition", cur.getPosition());
setResult(RESULT_OK, intent);
onCloseDB();
finish();
break; |
|
Пока делаю так. Сам вижу, что коряво. Пока все как то через сидалище, сперва все закрывается, потом все открывается, чтобы не нарваться на несуществующую позицию курсора. Есть какой нить способ поэлегантнее?