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.
- Lectura de datos SharedPreferences en Fragment, dentro de FragmentActivity
- En preferencias compartidas, cómo almacenar array de cadena en la aplicación android
- ListView y SharedPreferences de opción múltiple
- ¿Es String una primitiva o un Objeto en Android o Java?
- SharedPreferences no se eliminan en la aplicación de desinstalación de usuario
- Android SharedPreferences en Fragmento
- Preferencias compartidas entre dos procesos de la misma aplicación
- Guardar paquete con SharedPreferences
- Primera vez que se muestra Solución de actividad
- Las asignaciones de preferencias compartidas de Android no persisten entre sesiones de emulador
- Uso de preferencias compartidas entre actividades
- Guardar el estado cuando se pulsa el botón Atrás
- Array de cadenas en SharedPreferences
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);
- Bloqueo / desbloqueo de pantalla de Android mediante programación
- Problema: Pasar datos grandes a la segunda actividad