2016-11-17 2 views
0

Ich verwende SharedPreference, um Daten zwischen Aktivitäten zu speichern (es ist nichts Einstellungsbezogene, nur Benutzerdaten).Erstellen SharedPreference von Xml

habe ich diese statischen Methoden in einer utils Klasse von überall in meiner app schriftlich/Lesen von gemeinsamen Vorliebe zu handhaben:

public static <T> void saveData(Context context, String key, T value, String typeOfValue) { 
     SharedPreferences sharedPreferences = context.getSharedPreferences("FILE", Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     switch (typeOfValue) { 
      case ("String"): 
       editor.putString(key, (String) value); 
       break; 
      case ("int"): 
       editor.putInt(key, (Integer) value); 
       break; 
      case ("Boolean"): 
       editor.putBoolean(key, (Boolean) value); 
       break; 
      default: 
       break; 
     } 
     editor.commit(); 
    } 

    public static <T> T loadData(Context context, String key) { 
      SharedPreferences sharedPreferences = context.getSharedPreferences(FILE, Context.MODE_PRIVATE); 
      return (T) sharedPreferences.getAll().get(key); 
    } 

ich diese Fragen haben:

  1. Wenn ich dies tun Weise, wann wird die Einstellungsdatei "FILE" erstellt? Wird es erstellt, wenn die Anwendung installiert wird oder nur wenn die erste Speicher- oder Lade-Methode aufgerufen wird? Ist es ein XML?
  2. Was passiert, wenn ich sicherstellen möchten,
    • Eine gemeinsame Vorliebe Datei namens „FILE“ wird erstellt, wenn die Anwendung installiert ist.
    • Innerhalb dieser Datei, eine Liste der permanenten Schlüssel deklarieren (keine weiteren Schlüssel werden später hinzugefügt werden) und sie alle auf Standardwerte gesetzt haben.

Wie kann ich das tun? Ich habe gehört, dass das Erstellen der gemeinsamen Präferenz aus XML helfen könnte, aber nach dem Lesen der Android-API scheint es, als ob diese Art der gemeinsamen Präferenz für die "Einstellungen" nur in Android ist.

Ich weiß, dass man „irgendwie“ den Standardwert wie dieser

String username = prefs.getString("username_key", "DefaultUsername"); 

Aber ich will das nicht, da alle meine Lesemethoden generisch sind. Außerdem mag ich das nicht, weil ich nicht wirklich weiß, was unter der Haube passiert. Es scheint nicht so, als ob der Standardwert tatsächlich in der Einstellungsdatei festgelegt ist, es kann einfach den Standardwert zurückgeben, wenn noch kein Wert festgelegt wurde.

Antwort

0

Sie können die Datei sharedPreference.xml anzeigen. Verwenden Sie Android Studio -> Tools -> Android -> Android Device Monitor. image

Der Dateipfad ist /data/data/<package_name>/shared_prefs So können Sie testen, wenn die Datei erstellt.

+0

danke, aber ich benutze genymotion und obwohl ich es versuchte, konnte ich es nie mit Android Device Manager, so dass ich nicht sehen kann, was ist eigentlich im Emulator ... –

Verwandte Themen