Uso del editor de preferencias compartidas

Estoy trabajando lentamente a través de un libro de aprendizaje de Android y se le dio el siguiente código para asignar datos de usuario:

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(); } 

Sin embargo, me sale un error (líneas indicadas con comentarios) que subraya el período y dice "construcción errónea" y también subraya los argumentos diciendo "eliminar estos tokens". He visto esto hecho en otras aplicaciones en el mismo formato, no entiendo lo que está mal.

Edit: Por supuesto! Esas declaraciones no se pueden poner directamente en la clase en ese nivel y deben estar dentro de un método, algo así:

 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.commit(); } } 

Creo que se puede perder el método OnCreate (), asegúrese de que debe colocar la preferencia compartida en su método OnCreate () … Acabo de editar su código a través de él

Por favor revise el código … abajo

 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")); } } 

SharedPreferences funcionará en paralelo con un método onCreate () siempre y cuando tenga un contexto:

 SharedPreferences settings = getAplicationContext().getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE); 
  • ¿Cuándo se aplicarán SharedPreferences () y commit ()?
  • Límite de tamaño de las preferencias compartidas de Android
  • ¿Cómo iterar a través de todas las claves de las preferencias compartidas?
  • Compartido prefrence almacenado valor no funciona con android onCreate ()
  • Android: Cómo obtener el tiempo de un TimePicker cuando se escribe en
  • Cómo hacer que la aplicación vaya a otra página si no se ejecuta por primera vez
  • Almacenar objeto de lista de matrices en SharedPreferences
  • ¿Por qué preferences.getString ("key", "DEFAULT") devuelve siempre "DEFAULT"?
  • Comportamiento SharedPreferences en Actualizar / Desinstalar
  • Eliminar todas las preferencias compartidas de mi aplicación
  • ¿Puedo cambiar el nombre de archivo de Preferencias?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.