Benutzereinstellungen speichern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Benutzereinstellungen speichern

    grüße,

    kann mir jemand den einfachsten weg nennen wie man benutzereinstellungen speichern kann?
    zb: hab ich 2 checkboxen oder radio buttons im app und ich will die daten gespeichert haben für den nächsten start der app.

    wie geht das am einfachsten? wenn es jemand weiß wäre ein kleines beispiel dazu recht net. danke :Android:
    ich muß gar nix...
  • Die Android GUI hält eine Spezielle Klasse "Preferences" bereit, mit der man auf einfachste Weise Optionsmenüs erstellen kann.
    Für die Optionsseite benötigst du dann lediglich ein ganz einfaches Activity, die Definition der Optionselemente geschieht über die strings.xml.

    Natürlich muss die Optionsseite auch in der manifest.xml eingetragen werden:

    HTML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    3. package="org.me.spieltest">
    4. <application>
    5. <activity android:name=".SpielActivity" android:label="mein Spiel">
    6. <intent-filter>
    7. <action android:name="android.intent.action.MAIN"/>
    8. <category android:name="android.intent.category.LAUNCHER"/>
    9. </intent-filter>
    10. </activity>
    11. <activity android:name=".gameOptions" android:label="Spiel Einstellungen">
    12. <intent-filter>
    13. <action android:name="android.intent.action.MAIN"/>
    14. <category android:name="android.intent.category.LAUNCHER"/>
    15. </intent-filter>
    16. </activity>
    17. </application>
    18. </manifest>
    Alles anzeigen


    In der strings.xml die Optionselemente definieren:

    HTML-Quellcode

    1. <string name="main_menu_options_prefs_title">Preferences</string>
    2. <string name="pref_account_title">Game account preferences</string>
    3. <string name="pref_account_username_title">Username</string>
    4. <string name="pref_account_username_summary">Login und Playername</string>
    5. <string name="pref_account_username_dialogTitle">Enter Login Name:</string>
    6. <string name="pref_account_password_title">Password</string>
    7. <string name="pref_account_password_summary">Login Password</string>
    8. <string name="pref_account_password_dialogTitle">Enter Password:</string>
    9. <string name="pref_game_title">Gameoptions</string>
    10. <string name="pref_inet_title">Internet</string>
    11. <string name="pref_inet_summary">Permit Internet-connection </string>
    12. <string name="pref_inet_dialogTitle">Internet:</string>
    Alles anzeigen


    Der Wert des Attributs name ist dabei nicht frei wählbar, sondern

    der Code des Activitys gestaltet sich dann sehr einfach:

    Java-Quellcode

    1. package org.me.spieltest;
    2. import android.app.Activity;
    3. import android.content.Intent;
    4. import android.os.Bundle;
    5. import android.view.View;
    6. import android.view.View.OnClickListener;
    7. import android.widget.Button;
    8. import android.view.Menu;
    9. import android.view.MenuItem;
    10. import android.preference.PreferenceActivity;
    11. public class gameOptions extends PreferenceActivity implements OnClickListener
    12. {
    13. private Button backButton;
    14. @Override
    15. public void onCreate(Bundle savedInstanceState) {
    16. super.onCreate(savedInstanceState);
    17. // create widgets from preferences XML file
    18. addPreferencesFromResource(R.xml.preferences);
    19. }
    20. @Override
    21. public void onClick(View v) {
    22. if (v == backButton)
    23. {
    24. startActivity(new Intent(gameOptions.this, SpielActivity.class));
    25. }
    26. }
    27. }
    Alles anzeigen


    Das interessante an der Sache ist u.A., dass - zumindest bei mir im Emulator - die auf diese Weise getätigten Einstellungen automatisch gespeichert werden (würd mich mal interessieren wo) und beim nächsten Start der App erhalten bleiben.

    Ich empfehle auch, sich einmal die entsprechende Seite der offiziellen Android-Referenz anzuschauen:
    developer.android.com/referenc…erence/package-descr.html

    Nachtrag:

    Beim Stöbern in der Android Referenz bin ich auf eine Andere Lösung gestoßen, bei der im Gegensatz zu meinem Beispiel eine XML Layout-Datei verwendet wird.

    Die von mir beschriebene Variante funktioniert bei mir auf jeden Fall, würd mich trotzdem freuen, wenn jemand mal die Unterschiede sowie Vor -und Nachteile der beiden Vorgehensweisen beschreiben könnte... :)