Essere nuovi nel mondo Android e avanzare con gioia giorno per giorno;) Vorrei condividere esempi sull'uso comune.Come utilizzare SharedPreferences come LocalStore, in modo più generico?
Ecco l'esempio sull'utilizzo di SharedPreferences con la classe LocalStore generica.
creare una classe comune da utilizzare per l'attività principale o per una qualsiasi attività secondaria.
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;
}
}
Nota: È possibile utilizzare ObjectSerializer da here
Enjoy!
aggiornamento aggiuntive: Ho implementato una libreria da utilizzare MEMDISKCACHE e SHAREDPREF come GENERIC_STORE chiunque sia interessato può usarlo da
->https://github.com/wareninja/generic-store-for-android
StackOverflow FAQ dice: "E 'anche perfettamente bene a chiedere e rispondere alla tua domanda, fintanto che fingi di essere su Jeopardy: pronunciala sotto forma di domanda. " –
Potrebbe per favore rendere questa una domanda e una risposta appropriate invece di tutto ciò che è nel corpo della domanda. Altrimenti potrebbe essere cancellato. – Kev
È carino da parte tua condividere :), ma penso che questo appartenga a un blog piuttosto che a un sito di domande e risposte. –