Как правильно сохранить данные внутри элемента списка в течение жизненного цикла действия? - PullRequest
0 голосов
/ 25 декабря 2018

Я создал представление списка, которое отображает ежедневную цитату (один элемент listVite с 4 текстовыми представлениями, содержащими текстовые данные) из локальной базы данных SQLite в MainActivity.Он обновляется в указанное время каждый день с помощью диспетчера аварийных сигналов и приемника вещания.Мне нужно сохранить текст из (4) текстовых представлений внутри списка при любом изменении жизненного цикла.Мне нужно, чтобы он сохранялся, если пользователь a.поворачивает экран б.Force закрывает приложение и возвращается к нему до истечения указанного времени для повторного заполнения с другой цитатой c.переходит к другому действию и возвращается к MainActivity ... и т. д.

Я прочитал другие посты, и хотя некоторые из заголовков, кажется, задают этот вопрос, фактическое сообщение кажется другим.Есть идеи?Очень признателен.

Я пытался сохранить состояние экземпляра, используя этот код: (он не работал)

 mState = mDailyVerseListView.onSaveInstanceState();
 mDailyVerseListView.onRestoreInstanceState(mState);

Вот метод, в котором я извлекаю ежедневную цитату из базы данных SQLite:

public void DailyQuoteDatabaseAccess(){

SQLiteOpenHelper sqLiteOpenHelper = new SQLiteAssetHelper(this, 
DATABASE_NAME, null, DATABASE_VERSION);
SQLiteDatabase SqlDb = sqLiteOpenHelper.getReadableDatabase();
String rawQuery = "SELECT * FROM dailyQuoteTable ORDER BY RANDOM() LIMIT 
1";
Cursor cursor = SqlDb.rawQuery(rawQuery, null);
DailyQuoteCursorAdapter DQCursorAdapter = new DailyQuoteCursorAdapter(this, 
cursor);
this.mDailyQuoteListView.setAdapter(DQCursorAdapter);
}

1 Ответ

0 голосов
/ 25 декабря 2018

Мне нужно сохранить его, если пользователь a.поворачивает экран б. force закрывает приложение и возвращается к нему до истечения указанного времени для повторного заполнения с другой цитатой c.переходит к другому действию и возвращается к MainActivity

Я создал представление списка, которое отображает ежедневную цитату (один элемент listVite с 4 текстовыми представлениями, содержащими текстовые данные ) из локальной базы данных SQLite вMainActivity.

Поскольку вам необходимо удерживать данные после принудительного закрытия, а также ваши данные состоят из четырех строк.Для сохранения и извлечения данных лучше использовать SharedPreferences.

, когда вы читаете данные из SQLite, сохраняете их в SharedPreferences, а в onResume Activity читаете также из SharedPreferencesустановите Activity в качестве прослушивателя для этого SharedPreference в onResume (после прочтения) и удалите Activity из SharedPreference listener в onPause

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...