У меня есть список, накачанный RecyclerView
, который извлекается из базы данных SQLite.Я использую onCheckedChanged
для манипулирования данными.
Если я нажимаю CheckBox
, вызывается метод setItem()
.
private void setItem(int position, boolean checked) {
// update entries in sqLiteDatabase at click position
// set the database-cursor to current entry
cursor.moveToPosition(position);
// convert boolean to integer, because SQLite does not support boolean values
int iSelected = checked ? 1 : 0;
// create SQL-query-string
String SQLQuery = "" +
"UPDATE country " +
"SET selected=" + iSelected +
" WHERE id='" + cursor.getString(cursor.getColumnIndex("id")) + "'";
// execute the query
sqLiteDatabase.execSQL(SQLQuery);
// create SQL-answer-string
String SQLAnswer = cursor.getString(cursor.getColumnIndex("name")) +
"; Id=" + cursor.getString(cursor.getColumnIndex("id")) +
"; Selected=" + cursor.getString(cursor.getColumnIndex("selected"));
Toast.makeText(context, SQLQuery + "\n\n" + SQLAnswer, Toast.LENGTH_LONG).show();
}
Когда я нажимаю один раз на CheckBox
он показывает:
SQLQuery => "УСТАНОВИТЬ СТРАНУ ОБНОВЛЕНИЯ = 1 ГДЕ id = 3"
SQLAnswer => "Чехия; id = 3; выбрано = 1"
Когда я дважды щелкаю по нему:
SQLQuery => "УСТАНОВЛЕНО ОБНОВЛЕНИЕ страны выбрано = 0 ГДЕ id = 3"
SQLAnswer => "Чехия; id= 3; выбранный = 1 "
... и это изменится.Таким образом, запрос переключается между 0 и 1 (в зависимости от CheckBox
), но ответ никогда не становится 0.
Когда я закрываю приложение и перезапускаю его, записи в базе данных выполняются хорошо, но не обновляютсяво время выполнения.
У кого-нибудь есть идея (никогда не было таких проб с PHP)?