Java 使用共享首选项存储未提交的数据
我需要使用Java 使用共享首选项存储未提交的数据,java,android,Java,Android,我需要使用共享首选项存储尚未保存的数据。举个简单的例子,在我的应用程序中,我希望如果用户填写了注册表单并关闭了应用程序,那么当他重新进入应用程序时,他的信息仍然会被填写。您能推荐一些教程吗?您可以使用onSaveInstanceState将这些数据保存在捆绑包中 e、 g 如何为您的活动创建一个新的应用程序,例如您的注册活动。 此ViewModel将是您的SharedReferences的处理程序,用于跟踪您的数据,例如用户名和密码文本字段的值。 现在,您可以重写方法onCleared(),并在
共享首选项
存储尚未保存的数据。举个简单的例子,在我的应用程序中,我希望如果用户填写了注册
表单并关闭了应用程序,那么当他重新进入应用程序时,他的信息仍然会被填写。您能推荐一些教程吗?您可以使用onSaveInstanceState将这些数据保存在捆绑包中
e、 g
如何为您的活动创建一个新的应用程序,例如您的注册活动。
此ViewModel
将是您的SharedReferences
的处理程序,用于跟踪您的数据,例如用户名和密码文本字段的值。
现在,您可以重写方法onCleared()
,并在那里添加写入SharedReferences
的实现
在您的活动中,您需要:
- 使用
收听您的文本字段,可能会覆盖TextWatcher
(因为用户可能刚刚关闭应用程序),并在内部使用当前值更新您的void-afterextchanged(可编辑的s)
ViewModel
- 从
加载数据,以便在ViewModel
中初始化UI,以防在OnCreate()
中保存任何数据SharedReferences
onCleared()
- 当不再使用此ViewModel并将其销毁时,将调用此方法
您可以使用缓存的数据库或以xml/json格式将用户数据保存到应用程序数据中。感谢回复,但我只想存储尚未提交的信息感谢回复,这是一个很好的选择,但我的问题是如何使用共享首选项来实现该场景。以这种方式从应用程序类共享您的SharedReferences实例,即使在活动重新启动后,它也不会丢失这些实例。
@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);
}