我创建了一个列表视图,该列表视图显示MainActivity中本地SQLite数据库的每日报价(一个带有4个包含文本数据的textview的listVite项)。每天在特定时间通过警报管理器和广播接收器进行更新。我需要在所有类型的生命周期更改中保留列表视图中的(4)textViews中的文本。如果用户a,我需要将其保留。旋转屏幕b。强制关闭应用程序,并在指定时间之前返回该应用程序,以使用不同的引号重新填充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);
}
答案 0 :(得分:1)
如果用户a,我需要将其保留。旋转屏幕b。 力 关闭应用程序,并在指定时间之前返回到 重新填充不同的报价c。导航到另一个 活动,然后返回MainActivity
我创建了一个显示每日报价的列表视图(一个listVite 项目,其中4个包含文本数据的textviews )来自本地SQLite MainActivity中的数据库。
因为您需要在强制关闭后保留数据,并且您的数据是四个字符串。最好使用SharedPreferences
保存和检索数据。
当您从SQLite
读取数据时,将其保存在SharedPreferences
中,而在onResume
的Activity中,则将SharedPreferences
中的数据也设置为该SharedPreference
的侦听器(在阅读后)在onResume
中删除,然后从SharedPreference
的{{1}}侦听器中删除“活动”