我需要使用Shared Preferences
存储尚未保存的数据。举个简单的例子,在我的应用程序中,我希望如果用户填写了sign-up
表单并关闭了该应用程序,则当他重新输入该应用程序时,他的信息仍然会被填充。您会建议任何教程吗?
答案 0 :(得分:0)
您可以使用onSaveInstanceState将数据保存在Bundle中 例如
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
textView.setText(savedInstanceState.getString(TEXT_VIEW_KEY));
}
// invoked when the activity may be temporarily destroyed, save the instance state here
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString(GAME_STATE_KEY, gameState);
outState.putString(TEXT_VIEW_KEY, textView.getText());
// call superclass to save any view hierarchy
super.onSaveInstanceState(outState);
}
答案 1 :(得分:0)
如何为您的活动(例如注册活动)创建ViewModel。
这个ViewModel
将是您SharedPreferences
的处理程序,并用于跟踪数据,请说出用户名和密码文本字段的值。
现在您可以覆盖方法onCleared()
并在其中添加对SharedPreferences
的写入实现。
在您的活动中,您将需要:
使用TextWatcher
监听您的文本字段,并可能覆盖void afterTextChanged(Editable s)
(因为用户可能只是关闭应用程序),并在内部用当前值更新ViewModel
。 / p>
从ViewModel
加载数据,以便在OnCreate()
中保存任何数据时在SharedPreferences
中初始化UI。
onCleared()
- 当不再使用此ViewModel时,将调用此方法。