【问题标题】:How to access shared preference between activities in android? [closed]如何访问android中活动之间的共享偏好? [关闭]
【发布时间】:2011-11-19 07:48:01
【问题描述】:

我有两个活动 AB。 Activity A 有一个表单,通过单击提交按钮,它将表单数据保存到共享首选项中。活动 B 必须从活动 A 保存的共享偏好中检索数据。我浏览了很多论坛并得到建议使用getSharedPreference(Filename,Mode) 而不是getPreference(Mode)。但它仍然不起作用。除了在活动 A 中创建一个专门用于提取共享偏好值以供公众使用的类之外​​,是否还有其他方法可以完成这项工作。

请为此提出一个完美的解决方案。我什至将模式用作 WORLD_READABLE。

【问题讨论】:

  • 请发布您用来保存 SharedPreferences 的代码。
  • 请在此处查看我的代码 - pastebin.com/0W64gnEt。请在我将问题写为注释的代码中搜索“XYZ12345”一词。我将不得不得到解决方案。谢谢

标签: android android-activity sharedpreferences


【解决方案1】:

我认为问题在于,由于您打开SharedPreferences 的方式,编辑器实际上并未提交更改。

 SharedPreferences.Editor editor = getSharedPreferences("udata",MODE_WORLD_READABLE).edit();

MODE_WORLD_READABLE 更改为 Context.MODE_PRIVATE 看看是否有帮助。

【讨论】:

  • servState = 1; editor.putInt("AppState", servState); editor.commit();我已经提交了上述代码中的更改。最初我只使用 MODE_PRIVATE 但由于它不起作用,我使用了 MODE_WORLD_READABLE 模式。请有其他建议
  • 您应该调试提交代码,确保 mPwd.getText().toString() 不返回 null,并确保提交正常工作。
  • 我有同样的问题,当我在返回 onresume() 时开始活动时调用“pref.getBoolean(Constant.PREF_KEY, true)”或 startactivity(...);完成();
【解决方案2】:

您可以尝试使用PreferenceManager.getDefaultSharedPreferences。 JavaDoc 在这里:http://developer.android.com/reference/android/preference/PreferenceManager.html

您的其他尝试应该可以工作,但没有看到代码,我不确定为什么不行。

【讨论】:

    【解决方案3】:

    有一些初始化问题。现在我得到了解决方案。感谢大家的支持

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 2014-06-07
      • 2016-07-03
      • 2016-11-19
      • 1970-01-01
      相关资源
      最近更新 更多