A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto Avançado de Software II 5 – Revisão da Lição 3 Eduardo de Lucena Falcão.

Apresentações semelhantes


Apresentação em tema: "Projeto Avançado de Software II 5 – Revisão da Lição 3 Eduardo de Lucena Falcão."— Transcrição da apresentação:

1 Projeto Avançado de Software II 5 – Revisão da Lição 3 Eduardo de Lucena Falcão

2 O que aprendemos? Como capturar eventos de clique na ListView; O que é e como usar o toast; Navegando entre activities com o up ou back button Intents – Intents explícitos – Intents implícitos – Intent Resolution Process ShareActionProviders Android source code 2 ok

3 O que aprendemos? – Parte II Settings e SharedPreference BroadcastIntent and BroadcastReceivers 3 ok

4 Configurações Geralmente os aplicativos contêm configurações que permitem aos usuários modificar características e comportamentos do aplicativo. Por exemplo: alguns aplicativos permitem aos usuários especificar se as notificações estão ativadas ou especificar a frequência com que o aplicativo sincroniza dados com a nuvem. API Preference 4

5 Configurações Ao invés de usar objetos View, devemos usar subclasses de Preference (declaradas no XML); Cada Preference aparece como um item em uma lista e oferece a IU adequada; Ex.: CheckBoxPreference e ListPreference Cada preferência tem um par chave-valor que é salvo no sistema em um objeto do tipo SharedPreferences Só usamos o SharedPreference para inicializá-lo com os valores padrão e na hora de executar algum comportamento que depende de uma configuração O valor salvo em SharedPreferences para cada configuração pode ser um dos seguintes tipos de dados: boolean, float, int, long, String, String Set 5

6 Configurações É preciso usar uma subclasse Activity ou Fragment especializada para exibir as configurações de lista – Versões anteriores à 3.0: criar a atividade como uma extensão da classe PreferenceActivity – 3.0 em diante: deve-se usar um Activity tradicional que hospeda um PreferenceFragment que exige as configurações do aplicativo 6

7 Preferências Toda configuração do aplicativo é representada por uma subclasse específica da classe Preference. Cada subclasse contém um conjunto de propriedades essenciais que permitem especificar itens como o título da configuração e o valor padrão. Cada subclasse também oferece suas propriedades e interface do usuário especializadas. Por exemplo: a figura abaixo ilustra uma captura de tela das configurações do aplicativo Mensagens. Cada item de lista na tela de configurações tem, como fundo, um objeto Preference diferente. 7

8 Preferências mais comuns CheckBoxPreference – Exibe um item com uma caixa de seleção para uma configuração que esteja ativada ou desativada. O valor salvo é um booleano (true se estiver selecionada). ListPreference – Abre uma caixa de diálogo com uma lista de botões de opção. O valor salvo pode ser qualquer um dos tipos de valor compatíveis (listados acima). EditTextPreference – Abre uma caixa de diálogo com um widget EditText. O valor salvo é um String. 8

9 Preference subclasses 9 É claro que as classes embutidas não acomodam todas as necessidades e o aplicativo pode exigir algo mais especializado. Por exemplo: a plataforma atualmente não fornece nenhuma classe Preference para selecionar um número ou data. Portanto, pode ser necessário definir a própria subclasse Preference.

10 Definição de preferências em XML Cada subclasse Preference pode ser declarada com um elemento XML correspondente ao nome da classe, como. É preciso salvar o arquivo XML no diretório res/xml/. Embora seja possível nomear livremente o arquivo, é mais frequente vê-lo com o nome preferences.xml. Geralmente só é necessário um arquivo porque as ramificações na hierarquia (que abrem sua própria lista de configurações) são declaradas por meio de instâncias aninhadas de PreferenceScreen. O nó raiz do arquivo XML deve ser um elemento. É dentro desse elemento que se adiciona cada Preference. Cada filho adicionado dentro do elemento é exibido com um item único na lista de configurações. 10

11 Definição de preferências em XML 11

12 Definição de preferências em XML 12

13 Atributos android:key – Esse atributo é necessário para preferências que persistem a um valor de dados. Ele especifica a chave exclusiva (uma string) que o sistema usa ao salvar o valor dessa configuração em SharedPreferences. As únicas instâncias em que esse atributo é dispensável ocorrem quando a preferência é um PreferenceCategory ou PreferenceScreen, ou quando a preferência especifica um Intent para invocar (com um elemento ) ou um Fragment para exibir (com um atributoandroid:fragment). android:title – Fornece à configuração um nome visível ao usuário. android:defaultValue – Especifica o valor inicial que o sistema deve definir no arquivo SharedPreferences. Deve-se fornecer um valor padrão para todas as configurações. 13

14 Criação de grupos de configuração Se você apresentar uma lista de 10 ou mais configurações, os usuários podem ter dificuldade de percorrê-las, compreendê-las e processá-las. Para solucionar isso, pode- se dividir algumas ou todas as configurações em grupos, transformando uma longa lista em várias listas mais curtas. Um grupo de configurações relacionadas pode ser apresentado de uma das seguintes formas: – Uso de títulos – Uso de subtelas Pode-se usar uma ou ambas as técnicas de agrupamento para organizar as configurações do aplicativo. 14

15 Criação de grupos de configuração: categorias Para usar divisores com cabeçalhos entre grupos de configurações (como ilustrado na figura 2), coloca-se cada grupo de objetos Preference dentro de PreferenceCategory. 15

16 Criação de grupos de configuração: subtelas 16

17 Usando intents nas preferências Em alguns casos, pode ser necessário que um item de preferência abra em um atividade diferente e não na tela de configuração, como um navegador da web para exibir uma página da web. Para invocar um Intent quando o usuário seleciona um item de preferência, adicione um elemento como filho do elemento correspondente. 17

18 Usando intents nas preferências É possível criar intenções implícitas e explícitas usando os seguintes atributos: – android:action A ação a atribuir, conforme o método setAction(). – android:data Os dados a atribuir, conforme o método setData(). – android:mimeType O tipo MIME atribuir, conforme o método setType(). – android:targetClass A parte de classe do nome do componente, conforme o método setComponent(). – android:targetPackage A parte de pacote do nome do componente, conforme o método setComponent(). 18

19 PreferenceFragment Pode-se adicionar um PreferenceFragment a qualquer Activity. 19 Método que infla o menu de preferências.

20 Lendo preferências Por padrão, todas as preferências do aplicativo são salvas em um arquivo acessível de qualquer lugar dentro do aplicativo chamando o método estático PreferenceManager.getDefaultSharedPreferences(). Isso retorna o objeto SharedPreferences que contém todos os pares de valores-chave associados aos objetos Preference usados em PreferenceActivity. 20

21 Entregáveis Na data: 100% Próxima aula depois do deadline: 50% Daí em diante: 0% 21

22 Avaliação Mini-testes (aproximadamente 6) + Entregáveis: – Print das telas do app – Código parcial do projeto + Projeto final (individual) Nota – mini-testes (25%) + entregáveis (25%) – Projeto final (50%) 22


Carregar ppt "Projeto Avançado de Software II 5 – Revisão da Lição 3 Eduardo de Lucena Falcão."

Apresentações semelhantes


Anúncios Google