web-dev-qa-db-fra.com

Utilisation de l'éditeur de préférences partagées

Je travaille lentement à travers un livre d'apprentissage sur Android et le code suivant m'a été attribué pour attribuer des données utilisateur:

package com.androidbook.triviaquiz;

import Android.app.Activity;
import Android.content.SharedPreferences;

public class QuizActivity extends Activity {
    public static final String GAME_PREFERENCES = "GamePrefs";
    SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
    SharedPreferences.Editor prefEditor = settings.edit();
    prefeditor.putString("UserName", "John Doe"); //**syntax error on tokens**
    prefEditor.putInt("UserAge", 22); //**syntax error on tokens**
    prefEditor.commit();
}

Cependant, je reçois une erreur (lignes indiquées avec des commentaires) qui souligne la période et dit "construction mal placée" et qui souligne les arguments disant "supprime ces jetons". J'ai vu cela se faire dans d'autres applications dans le même format, je ne comprends pas ce qui ne va pas.

21
Gaege

Edit: bien sûr! Ces déclarations ne peuvent pas être placées directement dans la classe à ce niveau et doivent figurer dans une méthode, quelque chose comme ceci:

public class QuizActivity extends Activity {
    public static final String GAME_PREFERENCES = "GamePrefs";

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
        SharedPreferences.Editor prefEditor = settings.edit();
        prefEditor.putString("UserName", "John Doe");
        prefEditor.putInt("UserAge", 22);
        prefEditor.putString("Gender", "Male");
        prefEditor.commit();
    }
}
34
trojanfoe

Je pense que vous avez peut-être manqué la méthode OnCreate (), assurez-vous de placer la préférence partagée dans votre méthode OnCreate () ...

veuillez passer par le code ... ci-dessous

public class A extends Activity {
static SharedPreferences settings;
 public static final String PREFS_NAME = "YourPrefName";

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        settings = getSharedPreferences(PREFS_NAME, 0);
Log.v("UserName"," - "+settings.getString("username","Android"));
SharedPreferences.Editor editor = settings.edit();          
            editor.putString("username","Change Android");          
            editor.commit();

Log.v("UserName after changed editing preference key value"," - "+settings.getString("username","Android"));


}

}
3
Senthil Mg

SharedPreferences travaillera du côté d'une méthode onCreate () tant qu'elle a un contexte:

SharedPreferences settings = getAplicationContext().getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
0
Eliud