无法从不同的活动读取和写入相同的共享首选项的数据

时间:2018-05-09 14:19:11

标签: android android-fragments android-sharedpreferences

我在应用程序中有很多ActivitiesFragments。我正在从Activity中保存Preference中的一些数据。我能够在某些活动和片段中将数据保存并读取到同一SharedPreference我正在从MainActivity向特定的偏好写入数据,并在另一个活动和片段中读取相同偏好的数据是可能的。但是当我将数据从ActivityTwo写入同一个偏好并读取数据时ActivityThree和其他Fragments是不可能的 这是从MainActivity

保存首选项中的数据的代码
SharedPreferences prefs,prefs1;
    SharedPreferences.Editor edit;

     prefs=MainActivity.this.getSharedPreferences("myPrefs",MODE_PRIVATE);
     edit=prefs.edit();
      public void onResponse(JSONObject response) {

                        try {
                            saveToken = response.getString("token");
                            edit.putString("token", saveToken);
                            Log.i("Login", saveToken);
                            edit.apply();
                            }
                            catch(JSONException e)
                            {

                            }  

这是用于检索Fragment

中的首选项值的代码
SharedPreferences prefs;
  prefs=getContext().getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
  myToken = prefs.getString("token", "empty");  

这是将数据保存在SecondActivity

的同一首选项中的代码
 SharedPreferences prefs;
SharedPreferences.Editor edit;
 String saveToken;
  prefs = ActivitySecond.this.getSharedPreferences("myPrefs", MODE_PRIVATE);
    @Override
    public void onResponse(JSONObject response) {
    try {
               edit = prefs.edit();
             saveToken = response.getString("token");
              edit.putString("token", saveToken);
            edit.apply();
        }
         catch(JSONException e)
         {
         }  

这是在相同的其他Fragments应用程序中检索相同值的代码

SharedPreferences prefs;
  prefs=getContext().getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
  myToken = prefs.getString("token", "empty");  

但是这次我无法保存值并检索值。如何做到这一点?

0 个答案:

没有答案