从活动到片段访问共享首选项

时间:2019-03-26 09:58:48

标签: android kotlin

从活动到片段获取SharedPreference值

活动中共享的Pref代码

val editor =PreferenceManager.getDefaultSharedPreferences(applicationContext).edit()
                        editor.putString("Token", addToken)
                        editor.putString("isNew", 
  response.body()!!.isNew)
                        editor.putString("ccid", 
  response.body()!!.ccId)
                        editor.putString("email", email)
 editor.apply()

片段中的SharedPref代码

   val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
    token = sharedPreferences.getString("Token", "")
    ccID = sharedPreferences.getString("ccid", "")

如何从活动中获取片段中共享首选项的值。目前,我无法从活动到片段访问令牌

3 个答案:

答案 0 :(得分:1)

使用片段中上下文 getActivity()

val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());

答案 1 :(得分:1)

如果您想在context中使用Fragment,我会这样做:

private val mContext by lazy {
        this@YourFragment.context
}

然后您可以将mContext用作Context

而不是在您的applicationcontext中传递Activity,而是发送this

val editor =PreferenceManager.getDefaultSharedPreferences(this).edit()
...

答案 2 :(得分:0)

您调用了commit()编辑器方法吗?

查看详细信息: What's the difference between commit() and apply() in Shared Preference