How to create a variable that stores a value even if you restart the application or change scenes on Android?

Asked

Viewed 58 times

0

How to create a variable that stores a value even if it restarts or changes application scene, I don’t know if it would be a database or if there is something simple

1 answer

0

An example of the use of SharedPreferences:

/**
 * Classe encapsula as funcionalidades de leitura e gravação no SharedPreferences
 */
public class SharedPreferencesController {
    /**
     * Constantes utilizadas para salvar / resgatar os dados
     */
    private String DADOS = "DADOS";
    private String CAMPO = "CAMPO";

    /**
     * Grava as informações do objeto em um SharedPreferences.
     */
    public void salvar(final String  campo, final Context mContext){
        if(null == campo) return;
        //Cria uma instancia do SharedPreferences
       SharedPreferences prefs = mContext.getSharedPreferences(DADOS, Context.MODE_PRIVATE);
        // Criamos um instancia do editor, para salvamos os dados
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString(CAMPO, campo);
        // Para que as informações sejam atualizadas
        editor.commit();
    }

    /**
     * Coleta as informações do objeto em um SharedPreferences.
     */
    public String ler(final Context mContext){
        if(null == mContext) return null;
        //Cria uma instancia do SharedPreferences
        final SharedPreferences prefs = mContext.getSharedPreferences(DADOS, Context.MODE_PRIVATE);
        // se for nulo, n˜ao temos mais o que fazer, e retornamos nulo!
        if(null == prefs) return null;

        /**
         * Coleta os valores!
         *  Para carregar um valor passamos o nome da Propriedade e um valor padrão.
         *  Se não haver dados para esta propriedade, ele irá retornar o valor padão
         */
        final String  campo  = prefs.getString(CAMPO, null);
        return campo;
    }
}
  • This way of validating parameters is not advisable: if(null == campo) return; and if(null == mContext) return null;

  • @ramaral could explain me why? I think like this : If the context is null, we cannot create the instance, then we no longer have the q to do. Already in the field would be acceptable if you want to clean up the value! I thank you!

  • If the client of these methods has passed null values then he has an error in the program. By being treated this way he is not notified of it.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.