Anfänger Fragen - Menü

  • Zitat von Killua


    Ist es im wesentliche egal welche der zwei Funtkionen ich in der main activity ("getDefaultSharedPreferences" oder "getSharedPreferences") verwende ?


    getSharedPreferences() nimmt die Shared-Preferences des aktuellen Contexts. getDefaultSharedPreferences() nimmt immer die globalen SharedPreferences().


    Zitat


    Ich mein klar man hat bei dem erst genannten noch den default wert aber der ist doch nicht zwingend notwenig oder ?


    "Default" bezieht sich hier auf die Default-Datenbank. Es wird also die Standarddatenbank verwendet, in welcher alle globalen Preferences abggelegt werden. Du kannst ja auch Preferences nur zwischen bestimmten Activities sharen indem du sie in einer anderen Datenbank ablegst.


    Zitat


    Was die Ausgabe angeht, klar die lässt sich zum Beispiel mit TextView realisieren - das kann man doch aber bestimmt auch xml seitig realisieren oder ?


    Klar, einfach ein XML-Layout mit den Widgets definieren und die Werte der TextViews dann in der onCreate() Methode der Activity setzen.


    Zitat


    - ok du meinst also xml vom server abrufen schauen was drinsteht und wenn vibirieren gefordert ist das flag prüfen, also den wert aus der datenbank abrufen ob true oder false - jo das ist ne gute Lösung.


    Du kannst das checken der Einstellungen auch in die Vibrator-Klasse verschieben. Also dein Hauptprogramm läd die XML-Datei runter und checkt ob es vibrieren soll. Wenn es vibrieren soll, dann ruft es immer MyVibrator.vibrate() auf. Die MyVibrator.vibrate() Methode prüft dann die Preferences und vibriert falls gefordert. Dadurch ist es egal von wo in deiner Applikation du vibrieren willst - du kannst einfach vibrate() aufrufen und es wird nur vibriert falls das auch in den Preferences aktiviert ist.


    Zitat


    Du verwendest oben in deinem Beispiel getDefaultSharedPreferences - getDefaultSharedPreferences benötigt doch einen wert der übergeben werden soll (context) quasi den default wert, handelt es sich bei diesem default wert um das was übergeben wird wenn die anfrage nach dem eigentlichen z.b. pref_checkbox negativ verläuft ?


    Ich verwende getDefaultSharedPreferences() weil es einfacher ist. getDefaultSharedPreferences() ist eine statische Funktion - sie benötigt also, im Gegensatz zu getSharedPreferences(), keine Instanz des PreferenceManagers. Den Wert, den man getDefaultSharedPreferences() übergenen muss ist der aktuelle Context. Da jede Activity von Context abgeleitet ist, kannst du einfach deine aktuelle Activity übergeben.


    PHP
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);


    ist einfach kürzer und sauberer als:


    PHP
    PreferenceManager prefman = new PreferenceManager();
    SharedPreferences preferences = prefman.getSharedPreferences();



    Zitat


    handelt es sich bei diesem default wert um das was übergeben wird wenn die anfrage nach dem eigentlichen z.b. pref_checkbox negativ verläuft ?


    Wenn die Anfrage nach pref_checkbox negativ verläuft, dann wird immer der zweite Wert der Getter-Methode zurückgegeben:


    PHP
    preferences.getBoolean("pref_checkbox", false);
    preferences.getString("pref_username", "Ich bin ein Default-Wert");


    Im ersten Beispiel wird also false zurückgegeben, falls "pref_checkbox" in der Datenbank nicht existiert. Im zweiten Beispiel wird "Ich bin ein Default-Wert" zurückgegeben falls "pref_username" nicht existiert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!