Caso você tenha uma coleção relativamente pequena de valores-chave para salvar,
use as APIs SharedPreferences.
Um objeto SharedPreferences indica um arquivo que contém
pares de valores-chave e fornece métodos simples para ler e gravar. Cada arquivo
SharedPreferences é
gerenciado pela estrutura de trabalho e pode ser privado ou compartilhado.
Esta lição mostra como usar as APIs SharedPreferences para armazenar e
recuperar valores simples.
Observação: As APIs SharedPreferences são
usadas apenas para leitura e gravação de pares de valor-chave e não devem ser confundidas com as APIs
Preference, que ajudam a criar uma interface do usuário
para as configurações do seu aplicativo (embora usem SharedPreferences como
implementação para salvar as configurações de aplicativo). Para obter mais informações sobre o uso de APIs Preference, consulte o guia Configurações.
Obter um identificador para preferências compartilhadas
É possível criar um novo arquivo de preferência compartilhada ou acessar um existente chamando um destes dois métodos:
getSharedPreferences()— use esse método se precisar identificar vários arquivos de preferência compartilhada por nome, que devem ser especificados com o primeiro parâmetro. É possível chamá-lo de qualquerContextem seu aplicativo.getPreferences()— Use esse método de umaActivityse precisar usar apenas um arquivo de preferência compartilhada para a atividade. Como ele retorna um arquivo de preferência compartilhada padrão que pertence à atividade, não é necessário fornecer um nome.
Por exemplo: o código a seguir é executado dentro de um Fragment.
Ele acessa o arquivo de preferências compartilhadas
identificado pela cadeia de caracteres de recursos R.string.preference_file_key e abre-o usando
o modo privado para que o arquivo possa ser acessado apenas pelo seu aplicativo.
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
Ao nomear os arquivos de preferência compartilhada, você deve usar um nome que seja identificável exclusivamente
para o aplicativo, como "com.example.myapp.PREFERENCE_FILE_KEY"
Como alternativa, caso precise apenas de um arquivo de preferência compartilhada para sua atividade, use o método
getPreferences():
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Atenção: Se você criar um arquivo de preferência compartilhada
com MODE_WORLD_READABLE ou MODE_WORLD_WRITEABLE, qualquer outro aplicativo que conhecer o identificador do arquivo
poderá acessar seus dados.
Gravar em preferências compartilhadas
Para gravar em um arquivo de preferência compartilhada, crie um SharedPreferences.Editor chamando edit() em SharedPreferences.
Transmita as chaves e os valores que deseja gravar com métodos como putInt() e putString(). Depois, chame commit() para salvar as alterações. Por exemplo:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
Ler de preferências compartilhadas
Para recuperar valores de um arquivo de preferência compartilhada, chame métodos como getInt() e getString(), fornecendo a chave para o valor
desejado e opcionalmente um valor padrão para retornar caso a chave não esteja
presente. Por exemplo:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);