【问题标题】:Save Changes in activity onPause()保存活动 onPause() 中的更改
【发布时间】:2021-03-21 18:58:18
【问题描述】:

我有一个活动,它有一个回收视图,显示从数据库中获取的数据,它显示要添加到购物车中的产品,以便用户设置产品的数量。

这里都很好..但是

一旦活动进入 onPause(),数量就会被删除并全部归零。

我如何使用共享首选项或保存的实例将数量数据粘贴到 textView..?

示例代码会有所帮助

请帮忙

【问题讨论】:

标签: android android-studio android-recyclerview


【解决方案1】:

是的,避免丢失数据或状态是个好主意。

  1. 通过实现 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())); 
    }
    
  2. 在 onCreate 中恢复。

    if (savedInstanceState != null) {
         productText.setText(savedInstanceState.getString("productName"));
         quantityText.setText(String.valueOf(savedInstanceState.getInt("quantity")));
    
     }
    

【讨论】:

    【解决方案2】:

    不使用 SharedPreferecnes,而是使用 ViewModel 类,该类的特定目的是以生命周期意识的方式存储和管理与 UI 相关的数据。 ViewModel 类允许数据在配置更改(例如屏幕旋转)后继续存在。 https://developer.android.com/topic/libraries/architecture/viewmodel

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多