【发布时间】:2021-03-21 18:58:18
【问题描述】:
我有一个活动,它有一个回收视图,显示从数据库中获取的数据,它显示要添加到购物车中的产品,以便用户设置产品的数量。
这里都很好..但是
一旦活动进入 onPause(),数量就会被删除并全部归零。
我如何使用共享首选项或保存的实例将数量数据粘贴到 textView..?
示例代码会有所帮助
请帮忙
【问题讨论】:
标签: android android-studio android-recyclerview
我有一个活动,它有一个回收视图,显示从数据库中获取的数据,它显示要添加到购物车中的产品,以便用户设置产品的数量。
这里都很好..但是
一旦活动进入 onPause(),数量就会被删除并全部归零。
我如何使用共享首选项或保存的实例将数量数据粘贴到 textView..?
示例代码会有所帮助
请帮忙
【问题讨论】:
标签: android android-studio android-recyclerview
是的,避免丢失数据或状态是个好主意。
通过实现 onSaveInstanceState 方法保存实例状态。
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("productName",productText.getText().toString());
outState.putInt("quantity", Integer.parseInt(quantityText.getText().toString()));
}
在 onCreate 中恢复。
if (savedInstanceState != null) {
productText.setText(savedInstanceState.getString("productName"));
quantityText.setText(String.valueOf(savedInstanceState.getInt("quantity")));
}
【讨论】:
不使用 SharedPreferecnes,而是使用 ViewModel 类,该类的特定目的是以生命周期意识的方式存储和管理与 UI 相关的数据。 ViewModel 类允许数据在配置更改(例如屏幕旋转)后继续存在。 https://developer.android.com/topic/libraries/architecture/viewmodel
【讨论】: