2010-11-28 7 views
7

Je suis un programmeur relativement nouveau, et je n'ai pas vraiment travaillé avec XML avant d'écrire des mises en page pour les applications Android. Je souhaite qu'un utilisateur puisse enregistrer une valeur int (il serait plus facile de sauvegarder l'int sous forme de chaîne), afin de pouvoir l'utiliser chaque fois qu'il utilise mon application. (Par exemple, j'ai une heure de début et de fin que je veux qu'ils soient en mesure d'enregistrer au lieu d'insérer chaque fois qu'ils ouvrent l'application). Je pensais que la façon la plus simple d'y parvenir serait de sauvegarder le fichier dans un fichier xml, mais après avoir regardé les didacticiels android, le seul code que je pouvais comprendre sur les fichiers xml était de savoir comment charger les fichiers de ressources à partir du fichier .xml. fichiers, mais rien sur la façon de sauvegarder (ou éditer) ces chaînes.Comment enregistrer 2 chaînes sur une application Android?

Je n'ai pas accès à une base de données pour ce projet, il doit donc pouvoir être sauvegardé directement sur le téléphone.

Quel est le moyen le plus simple d'enregistrer 2 chaînes pour une application Android?

Répondre

21

Regardez SharedPreferences. Vous demandez une préférence partagée par nom, qui la crée si elle n'existe pas, vous y trouvez un éditeur, puis vous y ajoutez des valeurs nommées. À un autre moment, vous obtenez les préférences partagées et récupérez vos valeurs par nom. Vous pouvez également ajouter un écouteur pour que vous soyez averti des modifications apportées à votre objet de préférences partagées.

Obtenir votre prefs partage:

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE); 

Enregistrement d'une valeur:

SharedPreferences.Editor e = myPrefs.edit(); 
e.putInt("someValue", 50); // add or overwrite someValue 
e.commit(); // this saves to disk and notifies observers 

Récupération d'une valeur:

int i = myPrefs.getInt("someValue", 0); // return 0 if someValue doesn't exist 
+3

Juste une petite chose. int i = myPrefs.getInt ("someValue", defValue); Vous devez également donner une valeur par défaut. – Piscean

2

Vous devez utiliser SharedPreferences pour y parvenir, en quelque chose comme ça :

public class Calc extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    @Override 
    protected void onCreate(Bundle state){ 
     super.onCreate(state); 
     . . . 

     // Restore preferences 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean silent = settings.getBoolean("silentMode", false); 
     setSilent(silent); 
    } 

    @Override 
    protected void onStop(){ 
     super.onStop(); 

     // We need an Editor object to make preference changes. 
     // All objects are from android.context.Context 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("silentMode", mSilentMode); 

     // Commit the edits! 
     editor.commit(); 
    } 
} 

juste dans votre situation, vous devez utiliser les méthodes get et mettre à cordes et entier Cet exemple et plus d'informations sont disponibles sur le site Web Android Developer here.

Questions connexes