【问题标题】:How to keep track of information regarding fragments in Android如何在 Android 中跟踪有关 Fragment 的信息
【发布时间】:2015-08-11 15:42:56
【问题描述】:

我有一个类似于测试的片段。如果此测试通过、失败或未决定,用户可以从微调器菜单中进行选择。一旦用户离开这个片段,然后稍后再回来,我希望微调器菜单显示用户之前选择的内容。

谁能告诉我如何跟踪这些信息?我是 Java 和 Android 编程的初学者。另外,如果需要进一步解释,请告诉我。

【问题讨论】:

    标签: java android performance android-fragments android-spinner


    【解决方案1】:

    这可能取决于您希望能够在什么范围内引用这些测试。例如,您是否希望在用户关闭应用后清空这些片段?

    如果只是在应用程序“会话”中,您可以在片段中创建一个对象并覆盖 onResume 方法以使用适当的数据填充微调器。

    如果您想在应用关闭后保存信息,有多种选择。对于较小的数据集,您可以使用shared preferences

    如果您有未确定数量的“测试”,我建议您将所需的任何数据保存到文件中,并对其进行解析以填充片段中的字段

    看看这个以了解如何保存数据:http://developer.android.com/intl/es/training/basics/data-storage/files.html

    【讨论】:

    • 我很想将结果存储在一个临时文本文件中,然后从中读取。我有 5 个测试(所以 5 个片段)。我希望我可以避免将结果存储在文本文件中。
    • 诚实地将其存储在 1 个(或 5 个)文件中应该不会太难。只需以易于解析的方式分隔文件即可。也许你可以把每个答案换行?
    • 会试一试。谢谢。
    【解决方案2】:

    我做过与你做的类似的事情。我使用共享首选项来保存字符串,像这样

    将从微调器获得的字符串保存在片段中

    SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
    SharedPreferences.Editor mSharedPreferencesEditor = mSharedPreferences.edit();
    
    mSharedPreferencesEditor.putString("my_unique_key", myString);
    
    // commit changes
    mSharedPreferencesEditor.apply();
    

    请记住在您做出更改后始终应用更改,您可以根据需要保存任意数量的字符串,只要它们每个都有唯一的键。

    然后只取回值

    SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
    String myStringValue = mSharedPreferences.getString("my_unique_key", null);
    

    如果找不到任何具有该唯一键的数据,将返回第二个参数 (null)。 (即如果您还没有保存它)

    你也可以像这样使用另一个字符串而不是 null

    String myStringValue = mSharedPreferences.getString("my_unique_key", "could not find value");
    

    或者如果你想将一堆数据捆绑在一起,比如创建一个对象来保存一堆字符串,然后将该对象保存到一个文件中,如果你愿意,我可以告诉你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      相关资源
      最近更新 更多