【问题标题】:SharedPreference in fragment片段中的 SharedPreference
【发布时间】:2020-01-03 06:52:33
【问题描述】:
Public void saveData() {
   SharedPreferences prefs = getActivity().getSharedPreferences(SHARED_PREFS, MODE_PRI. VATE);
   SharedPreferences.Editor editor = prefs.edit();
   editor.putString(TEXT,edit name.getText().toString());
   editor.apply();
}

我在fragment 中使用了SharedPreferences。 我想在mainActivity 中使用来自fragmentSharedPreferences 数据。 我怎样才能做到这一点?请帮忙。

【问题讨论】:

    标签: android-studio android-fragments android-activity sharedpreferences


    【解决方案1】:

    您可以为SharedPreference 创建一个singleton class,然后您可以从任何您想要的activityfragment 访问它。

    示例

    public class SessionManager {
      private static SessionManager jInstance;
      private final SharedPreferences prefs;
      private final SharedPreferences.Editor editor;
    
      private SessionManager(Context context) {
          prefs = context.getSharedPreferences("Your_Preference_name", Context.MODE_PRIVATE);
          editor = prefs.edit();
      }
    
      public static synchronized SessionManager getInstance(Context context) {
          if (jInstance != null) {
              return jInstance;
          } else {
              jInstance = new SessionManager(context);
              return jInstance;
          }
      }
    
      public void setUserEmail(String userEmail){
          editor.putString("user_email",userEmail);
          editor.apply();
      }
      public String getUserEmail(){
          return prefs.getString("user_email","");
      }
    }
    

    现在您可以从任何activityfragment 使用SessionManager,如下所示。

    SessionManager.getInstance(context).setUserEmail("abc@gmail.com");
    String email = SessionManager.getInstance(context).getUserEmail();
    

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      相关资源
      最近更新 更多