Être nouveau dans le monde Android et avancer avec joie jour après jour;) Je voudrais partager des exemples sur l'utilisation courante.Comment utiliser SharedPreferences comme LocalStore, de manière plus générique?
Voici un exemple d'utilisation de SharedPreferences avec une classe LocalStore générique.
créer une classe commune à utiliser par votre activité principale ou par une sous-activité.
public class LocalStore {
private static final String TAG = "LocalStore";
private static final String PREF_FILE_NAME = "userprefs";
public static void clear(Context context) {
clear(context, "unknown");
}
public static void clear(Context context, String caller) {
Editor editor =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE).edit();
editor.clear();
editor.commit();
Log.d(TAG, "caller:"+caller + "|clear LocalStore");
}
public static boolean setCustomBooleanData(String key, boolean value, Context context) {
Editor editor =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE).edit();
editor.putBoolean(key, value);
return editor.commit();
}
public static boolean getCustomBooleanData(String key, Context context) {
SharedPreferences savedSession =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
return (savedSession.getBoolean(key, false));
}
public static boolean setCustomStringData(String key, String value, Context context) {
Editor editor =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE).edit();
editor.putString(key, value);
return editor.commit();
}
public static String getCustomStringData(String key, Context context) {
SharedPreferences savedSession =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
return (savedSession.getString(key, null));
}
public static boolean isCustomStringExistInLocal(String customKey, Context context) {
SharedPreferences savedSession =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
return (savedSession.getString(customKey, null))==null?false:true;
}
public static boolean saveObject(String objKey, Serializable dataObj, Context context) {
Editor editor =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE).edit();
editor.putString(objKey, ObjectSerializer.serialize(dataObj));
Log.d(TAG, "savedObject| objKey:"+objKey+"/" + dataObj.toString());
return editor.commit();
}
public static Object getObject(String objKey, Context context) {
SharedPreferences savedSession =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
Object dataObj = ObjectSerializer.deserialize(savedSession.getString(objKey, null));
return dataObj;
}
}
Note: Vous pouvez utiliser ObjectSerializer de here
Amusez-vous!
Mise à jour supplémentaire: I mis en œuvre une bibliothèque à utiliser MEMDISKCACHE et SHAREDPREF comme GENERIC_STORE toute personne intéressée peut l'utiliser de
->https://github.com/wareninja/generic-store-for-android
StackOverflow FAQ dit: "Il est aussi parfaitement bien de poser et de répondre à votre question, tant que vous prétendez être en péril: exprimez-le sous la forme d'une question. –
Pourriez-vous s'il vous plaît en faire une bonne question et répondre au lieu de tout être dans le corps de la question. Sinon, il peut être supprimé. – Kev
C'est gentil à vous de partager :), mais je pense que cela appartient à un blog plutôt qu'à un site de questions et réponses. –