Cursos / Informática para Internet / Dispositivos Móveis / Aula

arrow_back Aula 10 - Resources, Arquivos e Sharedpreferences

SharedPreferences

Outro tópico muito importante a ser estudado é a parte de preferências de usuário. Através do uso das preferências, ou SharedPreferences, deixamos o tratamento de armazenamento e recuperação com o Android, e ainda temos a possibilidade de utilizar toda a estrutura disponibilizada para tratamento desses dados.

O armazenamento das preferências é feito baseado no conceito de pares chave-valor e podem ter diversos níveis de acesso, de acordo com a necessidade da aplicação. Por padrão, as preferências são definidas como privadas à aplicação, e é baseado nesse conceito que iremos desenvolver nossos exemplos.

Existem duas formas de se definir uma preferência, programaticamente ou através de arquivos XML. A escrita e leitura de preferências de forma programática são feitas de forma bem simples. No exemplo mostrado na Listagem 7, mostramos uma das formas de se fazer a leitura dos dados armazenados como preferências.

Listagem 7 – Recuperação de valor de preferência

Para a recuperação do valor de uma preferência precisamos apenas obter a referência ao arquivo de referências padrão, através da classe PreferencesManager e, logo após, utilizar o método get equivalente ao valor que queremos recuperar (os métodos possíveis são getString, getBoolean, getFloat, getInt e getLong; cada um desses métodos recebe como parâmetro a chave referente à preferência, e o valor padrão que deve ser retornado caso essa preferência não exista).

Para os casos de edição ou criação de uma nova preferência, utilizaremos a mesma variável preferences definida na Listagem 7, e incluiremos  o trecho definido na Listagem 8.

Listagem 8 - Adição de uma preferência

Como pode ser visto, recuperamos inicialmente um objeto do tipo Editor, que será o responsável por realizar nossas mudanças nas preferências; depois inserimos a preferência desejada (para edição de uma preferência, basta utilizar uma chave já existente no arquivo) e, por fim, submetemos a mudança através do método commit. Após a execução desse trecho de código, uma nova preferência com nome "password" e valor "123" existirá nos registros de sua aplicação.

Como dito anteriormente, outra forma de tratar as preferências da aplicação é através de arquivos XML. Essa forma de abordagem é interessante quando a manipulação das preferências deve ser feita diretamente pelo usuário, uma vez que o próprio Android já disponibiliza toda a estrutura para o tratamento dos tipos de informação suportados pelas preferências.

Para criar uma tela de preferências da aplicação baseada em um XML, devemos definir o arquivo com as preferências que queremos trabalhar, conforme mostrado na Listagem 9.

Listagem 9 Arquivo de preferências

O nome do arquivo é arbitrário, mas, nesse exemplo, diremos que ele se chama "preferences.xml". Esse arquivo deve ser criado dentro da pasta res/xml, como vimos anteriormente. A definição do arquivo começa com a tag PreferenceScreen, que, por sua vez, possui as tags filhas EditTextPreference (no caso utilizamos duas propriedades de texto). Importante notar a propriedade android:key de cada uma das preferências definidas. Essas chaves são exatamente as mesmas das utilizadas nas Listagens 7 e 8, o que faz com que esses códigos trabalhem com as mesmas preferências.

Versão 5.3 - Todos os Direitos reservados