Хранение данных в программе.
Сегоня я попытамся научиться хранить дополнительные данные (в нашем случае это флаги) о сообщениях в виде базы данных.
Этот класс в своем конструкторе будет создавать (или открывать) базу данных.
SQLiteOpenHelper имеет vметоды для получения ссылки на, базу данных getReadableDatabase() и getWiritableDatabase().
Для запроса флага у интересующего нас сообщения достаточно выполнить код:
Для быстрого старта с базой данных можно воспользоваться статьей Хранение данных в Android на Хабре.
В нашем случае запрос создания таблицы будет доаольно простым: таблица будет состоять из двух столбцов: id сообщения и флага.
В нашем случае запрос создания таблицы будет доаольно простым: таблица будет состоять из двух столбцов: id сообщения и флага.
public class FlagsDBOpener extends SQLiteOpenHelper {
private static final String DBNAME = "flags";
private static final int DBVERSION = 1;
private static final String CREATE_TABLE = "CREATE TABLE message_flag " +
" (message_id INTEGER PRIMARY KEY, flags INTEGER)";
public FlagsDBOpener (Context context) {
super(context, DBNAME, null, DBVERSION);
}
@Override
public void onCreate(SQLiteDatabase dataBase) {
dataBase.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// Nothing to do.
}
}
Этот класс в своем конструкторе будет создавать (или открывать) базу данных.
SQLiteOpenHelper имеет vметоды для получения ссылки на, базу данных getReadableDatabase() и getWiritableDatabase().
Для запроса флага у интересующего нас сообщения достаточно выполнить код:
SQLiteDatabase db = dbOpener.getReadableDatabase();
Cursor result = db.query("message_flag", new String[]{"flags"}, "message_id = " + Integer.toString(messageId), null, "message_id", null, null);
boolean flag = false;
if (result.getCount() > 0) {
result.moveToFirst();
if (result.getInt(1) > 0) {
flag = true;
}
}
/* Using flag */
Comments
Post a Comment