2010-10-03 4 views
5

Je suis nouveau sur Android développement - en utilisant un livre appelé Sams Apprenez-vous Android Application Development en 24 heures. Nous l'avons suivi jusqu'à présent mais nous sommes restés bloqués en essayant d'utiliser SharedPreferences.Comment utiliser SharedPreferences

Dans le dossier src/com.androidbook.triviaquiz J'ai un fichier appelé QuizActivity, dans ce que j'ai les suivantes:

package com.androidbook.triviaquiz; 

import android.app.Activity; 
import android.os.Bundle; 
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", "JaneDoe"); 
    prefEditor.putInt("UserAge", 22); 
    prefEditor.commit(); 
} 

C'est ce que le livre me dit d'utiliser, mais il renvoie des erreurs aux points suivants: sous le "." après les deux premières instructions prefEditor, sous ("UserName", "JaneDoe") sous ("UserAge", 22); et sous "commit"

J'ai regardé sur des tas de sites Web pour l'aide mais tous semblent utiliser le même code. Qu'est-ce que je fais mal?

+0

Cocher cette http://www.gadgetsaint.com/go/xb023 – ASP

Répondre

7

Essayez de le mettre dans votre onCreate(). En outre, getDefaultSharedPreferences() est plus facile:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

    // Access the default SharedPreferences 
    SharedPreferences preferences = 
    PreferenceManager.getDefaultSharedPreferences(this); 
    // The SharedPreferences editor - must use commit() to submit changes 
    SharedPreferences.Editor editor = preferences.edit(); 

    // Edit the saved preferences 
    editor.putString("UserName", "JaneDoe"); 
    editor.putInt("UserAge", 22); 
    editor.commit(); 
} 
6

Utilisez SharedPreferences seulement après que l'activité est créée. Initialisez SharedPreferences dans onCreate().

public class QuizActivity extends Activity { 

public static final String GAME_PREFERENCES = "GamePrefs"; 
SharedPreferences settings; 
SharedPreferences.Editor prefEditor; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE); 
    prefEditor = settings.edit(); 

    prefEditor.putString("UserName", "JaneDoe"); 
    prefEditor.putInt("UserAge", 22); 
    prefEditor.commit(); 
    } 
} 

SharedPreferences est l'un des StorageOptions dans Android qui est utilisé pour stocker preferences.This utilisateur est accessible tout au long de l'application.Example de SharedPreferences. http://www.codestacks.in/2013/03/sharedpreferences/

code Exemple:

package com.example.test; 

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.widget.Toast; 

public class SharedPreferencesDemo extends Activity { 

SharedPreferences shared_preferences; 
SharedPreferences.Editor shared_preferences_editor; 
String test_string = ""; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    shared_preferences = getSharedPreferences("shared_preferences_test", 
      MODE_PRIVATE); 
    test_string = shared_preferences.getString("test_key", "Default"); 

    Toast.makeText(getApplicationContext(), test_string, Toast.LENGTH_SHORT) 
      .show(); 

    shared_preferences_editor = shared_preferences.edit(); 

    shared_preferences_editor.putString("test_key", "Hello World"); 
    shared_preferences_editor.commit(); 

    test_string=shared_preferences.getString("test_key", "Default"); 

    Toast.makeText(getApplicationContext(), test_string, Toast.LENGTH_SHORT).show(); 
    } 
} 
Questions connexes