Exemplo: Aplicativos que utilizem o GPS para capturar a posição do dispositivo. Como o recurso do GPS é caro (em termos de consumo de recursos do dispositivo), essas aplicações, de forma geral, possibilitam que o usuário defina o tempo de atualização da posição. Outro exemplo é o menu de mensagem do próprio Android como mostra a figura abaixo.
Em geral, esse tipo de funcionalidade é implementada como uma tela(acitivity) de configurações. Nessa série de postagens iremos abordar a melhor maneira (recomendada pela a documentação do Android) de implementarmos essa funcionalidade. Para isso vamos fazer o uso de SharedPreferences e PreferenceActivity ou PreferenceFragement.
Neste post vamos nos deter a passar algumas informações sobre SharedPrecerences, que por sua vez vai ser a base para construirmos nossa tela de configuração;
A classe SharedPreferences provê um framework para salvar e retirar informações do tipo chave valor de qualquer tipo primitivo. Os dados persistidos no SharedPreferences ser mantidos durante as várias sessões de usuário. Fonte: Documentação do Android
Você pode pensar no SharedPreferences como um hashmap que é persistido no dispositivo e que é visível apenas para sua aplicação.
Para pegar o objeto SharedPreferences da sua aplicação, você pode utilizar um dos três métodos:
- getSharedPreferences() - Usado se for necessário utilizar vários arquivos de preferências identificados pelo nomes, que são especificados no primeiro parâmetro.
- getPreferences() - Usado se apenas um aquirvo é necessário. Não é necessário definir o nome do arquivo.
- getDefaultSharedPreference() da classe PreferenceManager - Retorna uma instância do arquivo de SharedPreference padrão utilizado pelo framework no dado contexto.
Para escrever valores:
Chame o método edit() para pegar o objeto SharedPreferences.Editor.
Adicione valores através de um dos métodos put (por exemplo, putBoolean() and putString() ).
"Comite" os novos valores usando o método commit() (fará com que os valores inseridos sejam realmente persistidos)
Analogamente, para ler os valores armazenados, use os métodos get da classe SharedPreferences (como, getBoolean() e getString()).
O exemplo a seguir, adaptado da documentação do Android, salva a preferência pelo modo silêncio ao clicar na teclas no modo calculadora:
public class Calculadora extends Activity { public static final String PREFS = "MeuArquivoPref"; @Override protected void onCreate(Bundle state){ super.onCreate(state); . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS, 0); boolean silencioso = settings.getBoolean("modoSilencioso", false); setSilencioso(silencioso); } @Override protected void onStop(){ super.onStop(); // E necessario o objeto Editor para alterar a preferencia. // Todos os objetos vem do android.context.Context SharedPreferences configuracao = getSharedPreferences(PREFS, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("modoSilencioso", mModoSilencioso); // Commite as alteracoes editor.commit(); } }
O exemplo anterior é apenas uma possível demonstração do que você pode fazer com o SharedPreferences e também é apenas um base para o nosso próximo passo que é construir uma tela de configuração. Na próxima postagem veremos como construi-lá.
Nenhum comentário:
Postar um comentário