如何在android中更新SharedPrefManager

时间:2017-10-21 07:04:28

标签: java android sharedpreferences

我创建了一个用户登录应用。登录后,它将所有检索到的数据存储到我的DBHandler,但之后我希望它检查更新并在每次重新启动应用程序或更新用户详细信息时获取更改的数据,或者只是刷新每次我打开sharedPrefManager

这是我的profile_Activity(Specific)

SharedPref

1 个答案:

答案 0 :(得分:0)

我有一个用于sharedPreference的saperate类: -

<强> 1&GT; AppPreference.java

public class AppPreference {


    public static final String PREF_USERID = "prefUserId";
    public static final String PREF_FNAME = "prefFname";
    public static final String PREF_LNAME = "prefLname";
    public static final String PREF_PHONE = "prefphone";


    public static final void setStringPref(Context context, String prefKey, String key, String value) {
        SharedPreferences sp = context.getSharedPreferences(prefKey, 0);
        SharedPreferences.Editor edit = sp.edit();
        edit.putString(key, value);
        edit.commit();
    }

    public static final String getStringPref(Context context, String prefName, String key) {
        SharedPreferences sp = context.getSharedPreferences(prefName, 0);
        return sp.getString(key, "");
    }

    public static final class PREF_KEY {
        public static final String USERID = "userid";
        public static final String FNAME = "fname";
        public static final String LNAME = "lname";
        public static final String PHONE = "phone";
    }
}

<强> 2 - ; LoginActivity.java

 if (jsonObject.toString().contains(Constant.JSON_KEY.RESPONSE)) {
                        JSONObject response = jsonObject.getJSONObject(Constant.JSON_KEY.RESPONSE);

                        String userId = response.getString(Constant.JSON_KEY.ID);
                        String fname = response.getString(Constant.JSON_KEY.FNAME);
                        String lname = response.getString(Constant.JSON_KEY.LNAME);
                        String phone = response.getString(Constant.JSON_KEY.PHONE);

                        SignUpDetailsClass signUpDetailsClass = new SignUpDetailsClass();
                        signUpDetailsClass.setId(userId);
                        signUpDetailsClass.setFname(fname);
                        signUpDetailsClass.setLname(lname);
                        signUpDetailsClass.setPhone(phone); 

                        **// store data in sharedPreference**
                        AppPreference.setStringPref(context, AppPreference.PREF_USERID, AppPreference.PREF_KEY.USERID, userId);
                        AppPreference.setStringPref(context, AppPreference.PREF_FNAME, AppPreference.PREF_KEY.FNAME, fname);
                        AppPreference.setStringPref(context, AppPreference.PREF_LNAME, AppPreference.PREF_KEY.LNAME, lname);
                        AppPreference.setStringPref(context, AppPreference.PREF_PHONE, AppPreference.PREF_KEY.PHONE, phone);
    }

第3&GT; Profile.java

                        **// get data from sharedPreference**
                        String userId = AppPreference.getStringPref(context, AppPreference.PREF_USERID, AppPreference.PREF_KEY.USERID);
                        String strMob = AppPreference.getStringPref(context, AppPreference.PREF_PHONE, AppPreference.PREF_KEY.PHONE);
                        String strFirstName = AppPreference.getStringPref(context, AppPreference.PREF_FNAME, AppPreference.PREF_KEY.FNAME);
                        String strLastName = AppPreference.getStringPref(context, AppPreference.PREF_LNAME, AppPreference.PREF_KEY.LNAME);

这里的第一堂课是针对 AppPreference.java ,另一个课程用于 Login.java 设置 Preference中的所有数据然后你可以在应用程序中的任何位置获取数据,例如,参见获取 Profile.java

中的所有数据

希望这会对你有所帮助。