es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando una clase de Shared Preference común en Android y utilizando esa clase para obtener y establecer datos desde todos los módulos en el proyecto.

Creando una clase compartida de preferencias en Android y utilizando esa clase para buscar y establecer datos desde todos los módulos del proyecto. Por favor, comparta los archivos (.java) y proporcione una breve explicación sobre cómo utilizarlo y también explique el flujo, como llamar a la clase compartida de preferencias, cómo establecer datos y cómo recuperar datos. Gracias de antemano 🙂

Lo que actualmente estoy siguiendo se muestra a continuación:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("name", "Elena");
editor.putInt("idName", 12);
editor.apply();

// Para obtener datos desde las preferencias
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String name = prefs.getString("name", "No se ha definido ningún nombre"); // "No se ha definido ningún nombre" es el valor predeterminado.
int idName = prefs.getInt("idName", 0); // 0 es el valor predeterminado.
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear una clase común de Shared Preferences en Android, puedes seguir los siguientes pasos:

    1. Crea un nuevo archivo Java y nómbralo “AppPreference.java”.

    2. Importa los paquetes android.content.Context y android.content.SharedPreferences.

    3. Define una clase llamada “AppPreference” y hazla estática para que pueda ser utilizada en diferentes módulos del proyecto.

    public class AppPreference {
        private static SharedPreferences sharedPreferences;
        private static SharedPreferences.Editor editor;
    
        public static void init(Context context) {
            if (sharedPreferences == null){
                sharedPreferences = context.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
                editor = sharedPreferences.edit();
            }
        }
    
        public static void saveString(String key, String value) {
            editor.putString(key, value);
            editor.apply();
        }
    
        public static String getString(String key, String defaultValue) {
            return sharedPreferences.getString(key, defaultValue);
        }
    
        public static void saveInt(String key, int value) {
            editor.putInt(key, value);
            editor.apply();
        }
    
        public static int getInt(String key, int defaultValue) {
            return sharedPreferences.getInt(key, defaultValue);
        }
    }
    
    1. En el código anterior, hemos creado una clase estática “AppPreference” y definido métodos para guardar y obtener valores de las preferencias compartidas. El método “init” inicializa las preferencias con el nombre “MyPrefs” utilizando el contexto pasado como parámetro.

    2. Para usar esta clase en cualquier módulo del proyecto, primero llama al método “init” en el método onCreate() de la MainActivity:

    public class MainActivity extends AppCompatActivity{
        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState)
            ...
            AppPreference.init(this);
            ...
        }
    }
    
    1. A partir de este punto, puedes utilizar los métodos saveString, getString, saveInt y getInt para guardar y obtener valores de las preferencias compartidas en todos los módulos del proyecto:
    // Para guardar datos en las Shared Preferences
    AppPreference.saveString("name", "Elena");
    AppPreference.saveInt("idName", 12);
    
    // Para obtener datos de las Shared Preferences
    String name = AppPreference.getString("name", "No se ha definido un nombre");
    int idName = AppPreference.getInt("idName", 0);
    
    1. Cuando llamas al método saveString/saveInt, los datos se almacenarán en las preferencias compartidas con la clave proporcionada. De manera similar, cuando llamas a getString/getInt, se recuperarán los datos almacenados en las preferencias compartidas con la clave respectiva. Si los datos no están disponibles en las preferencias compartidas, se devolverá el valor defaultValue proporcionado.

    2. De esta manera, puedes asegurarte de que solo haya una instancia de las preferencias compartidas en todo el proyecto y acceder a ellas desde cualquier parte del proyecto.

Comments are closed.