Capítulo 02: Cadastro de Alunos

Documentos relacionados
Capítulo 08: Layouts customizados

Capítulo 05: Menus de Contexto

Capítulo 04: Persistência com SQLite

Definições de Projeto

Android Básico Hello World!

Capítulo 06: Trabalhando com Intents

Prof. Jhonatan Fernando

Capítulo 07: Câmera e Arquivos

Usando e Gerenciando Activities

Programação para Dispositivos Móveis

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

Computação II Orientação a Objetos

Manual. Portal de Seminovos

Programação para Dispositivos Móveis. Activity e Intent

Manual. Portal de Seminovos

Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K

RecyclerView. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Programa Analítico de Disciplina INF311 Programação para dispositivos móveis

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Desenvolvimento de Aplicativos Android

1. Estrutura do Projeto (0,2) pontos

Desenvolvimento de um aplicativo básico usando o Google Android

AULA 3. Minicurso PET-EE UFRN

CONTEÚDO (técnico) COMPLETO DO TREINAMENTO INTENSIVO PARA ANDROID Universidade Android

Criando as primeiras telas (Activity)

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Continuação... Criando a Interface e adiante

2ª Edição Ricardo R. Lecheta

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

Portal de Sistemas Integrados. Manual do Usuário. Versão: 1.0

Sistema de Gestão de Recursos Humanos

Navegar entre páginas Necessário o uso de Intent. Intenção de ir a algum lugar, acessar outros recursos, outros apps.

Manual do Aplicativo

Android. Interfaces: widgets

Manual Converte-MV S_Line

BARRA DE PESQUISA DISPONÍVEL EM LISTAGEM DE CERTIFICADOS, IMPORTAÇÃO DE DADOS E NOTIFICAÇÃO DE PARTICIPANTES

Documentação Atualizações Onix Gestão Empresarial e NFC-e

Professor: Rogério Benedito de Andrade. Formação:

Sistema colaborativo para monitoramento de focos de Aedes aegypti

Programa CIEE de Educação a Distância

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Ficha de Expectativa de Resposta da Prova Escrita

Guia DigiAtlas. Sobre o projeto:

Tutorial: como funciona o SysBackup

INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período

Notification. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos

Interfaces Gráficas parte 3

FERRAMENTA DE GERENCIAMENTO PARA O SGBD MYSQL

MANUAL DE UTILIZAÇÃO DO SISTEMA LUX NF-E V

Manual de utilização CHILD SAFE

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

Desenvolvimento de um aplicativo básico usando o Google Android

05 Como utilizar POO no ambiente gráfico do C#?

Mensagens. Para conhecimento. Renomear arquivos. Botão Direito no arquivo > Rafactor > Rename Shift + F6

Continuação... Criando a Interface e adiante

UNIVERSIDADE FEDERAL DA PARAÍBA PRÓ-REITORIA DE EXTENSÃO E ASSUNTOS COMUNITÁRIOS - PRAC COORDENAÇÃO DE PROGRAMAS DE AÇÃO COMUNITÁRIA - COPAC

Login. Criar uma nova Activity. Login. Luiz Eduardo Guarino de Vasconcelos

Escrito por Adriano Neres Rodrigues Qua, 30 de Dezembro de :00 - Última atualização Qua, 30 de Dezembro de :01

TOTVS Manual do Usuário Intellector Portal

Universidade Federal do Pampa Núcleo de Tecnologia da Informação e Comunicação - NTIC 10/09/2013

Guia Rápido Aplicativo TW Viewer. Compatível com toda linha TW. Obrigado pela preferência!

Criando um Aplicativo de Chat no App Inventor 2 utilizando Firebase

Ponto Secullum 4 - Escalas

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Importador de Notas Fiscais Eletrônicas

Android DEFINIÇÕES E CICLO DE VIDA. Prof. Dr. Joaquim assunção.

Prof: Ricardo Quintão Site:

Social Networking Software Product Line Documento de Requisitos: Casos de Uso e Variabilidades

PROJETO PEDAGÓGICO DE CURSOS

Programação para Dispositivos Móveis. Banco de Dados (SQLite)

AULA 2. Minicurso PET-EE UFRN

BARRA DE PESQUISA DISPONÍVEL EM LISTAGEM DE CERTIFICADOS, IMPORTAÇÃO DE DADOS E NOTIFICAÇÃO DE PARTICIPANTES

Manual Sistema de Automação de Pedidos Data C

Windows Forms Applications - Introdução. Prof. Robinson Alves IFRN

Manual. Inclusão de Notas Fiscais

Mais Elementos da Interface com o Usuário. Prof. Fellipe Aleixo

Sumário. 2 Primeiro acesso/trocar de senha 8

3- Após realizar o agendamento da entrega e clicar no botão continuar, os demais blocos ficarão visíveis, sendo

Java Standard Edition (JSE)

Os campos que estiverem com a cor CINZA trazem informações automáticas do sistema. Só poderão ser alterados, quando existir opção de escolha.

Manual do Usuário SinFAT Web

Solicitação de Serviço

Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Centro de Suporte. (Sistema Android) RCAMail Manual de Utilização Página 1

Introdução a Programação de Smartwatch com Android

Teclado. PdP. Autor: Tiago Lone Nível: Básico Criação: 20/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Guia Nota Fiscal Eletrônica v4.0 - Linx Postos Seller WEB

1. ACESSO MENU PRINCIPAL Página Inicial Botões no Topo da Tela Campos para Exibição... 4

Tutorial Android Speech

Padrão de projeto de software

MANUAL SISTEMA AUDATEX WEB

Tabela Dinâmica. Curso: Engenharia de Produção Disciplina: Informática Aplicada a Engenharia Professor: Rodrigo da Rocha

Java Standard Edition (JSE)

Manual de utilização do FacGEO. Rede Credenciada FACEB

Criando uma aplicação web

Transcrição:

Capítulo 02: Cadastro de Alunos

Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio palheta 2/75

Agenda Definições de projeto Registro Acadêmico Pensando em Casos de Uso Criação de uma nova App Criação da Tela de Listagem de Alunos Trabalhando com ListView, List e Adapters Integração entre componentes de tela e controladores Alertas baseados no componente Toast Evento de clique simples em uma lista Evento de clique longo 3/75

Definições de Projeto Como estratégia para apresentação do conteúdo deste curso, realizaremos a implementação de uma app para Manipulação de Dados de Alunos Em linhas gerais, nossa app consiste em: Manter dados de alunos; Entrar em contato com alunos; Trocar dados com um servidor WEB; E Compartilhar conteúdo em mídias ; 4/75

Funcionalidades da nossa App 5/75

Funcionalidades da nossa App 6/75

Começando pelo cadastro Neste requisito da nossa App, precisamos de: Uma tela para listar Alunos E outra para cadastrar ou alterar dados de Alunos A exclusão deve ocorrer com a seleção de um aluno na tela de listagem Vamos começar criando uma nova Android Application 7/75

Exercício 01: Nova Android Application 8/75

Exercício 01: Nova Android Application Clique em Next, até chegar à última tela: 9/75

Estrutura de pastas da App 10/75

Exercício 02: Tela de listagem Agora vamos definir a Tela de listagem de alunos Nossa tela precisa dos seguintes componentes: Lista: apresentação dos nomes dos alunos. O componente com essa função é o ListView, que recebe uma coleção de Objetos e lista seus dados Campo de texto: onde o usuário informa o nome de um aluno que deseja incluir na listagem. Usaremos o EditText Botão: para adicionar o nome do aluno à lista. Usaremos o componente Button. 11/75

Exercício 02: Tela de listagem Altere o arquivo: /res/values/strings.xml 12/75

Exercício 02: Tela de listagem Altere o arquivo: /res/values/strings.xml Strings usadas na Tela de Listagem 13/75

Exercício 02: Tela de listagem Altere: /res/layout/listaalunoslayout.xml 14/75

Exercício 02: Tela de listagem Altere: /res/layout/listaalunoslayout.xml Campo de Texto id=ednomelistagem 15/75

Exercício 02: Tela de listagem Altere: /res/layout/listaalunoslayout.xml Componente Botão id=btaddlistagem 16/75

Exercício 02: Tela de listagem Altere: /res/layout/listaalunoslayout.xml Componente Lista para exibir Alunos id=lvlistagem 17/75

Exercício 02: Tela de listagem Execute sua App Repare que os os componentes EditText e Button estão visíveis No entanto, a ListView não aparece Isso ocorre porque nossa lista ainda está vazia 18/75

Exercício 02: Tela de listagem Campo de Texto e Botão estão Execute sua App disponíveis Repare que os os componentes EditText e Button estão visíveis No entanto, a ListView não aparece Isso ocorre porque nossa lista ainda está vazia 19/75

Exercício 02: Tela de listagem Campo de Texto e Botão estão Execute sua App disponíveis Repare que os os componentes EditText e Button estão visíveis Nossa Lista de alunos entanto, a está ListView ainda vazia No não aparece Isso ocorre porque nossa lista ainda está vazia 20/75

Controladores e as regras de negócio As telas (xml) que criamos em Android estão associadas a classes Java (controladores), responsáveis pela implementação de suas regras de negócio A nossa tela listaalunoslayou.xml é controlada pela classe ListaAlunosActivity.java A classe de controle captura os eventos e componentes da tela e implementa as regrasde negócio necessárias às funcionalidades da nossa App 21/75

Exercício 03: Atributos e coleção 22/75

Exercício 03: Atributos e coleção Componente de Tela, acessados na classe de controle 23/75

Exercício 03: Atributos e coleção Objeto que guarda a coleção de Alunos 24/75

Exercício 03: Atributos e coleção Método que pode ser usado para inicializar os atributos 25/75

Exercício 04: Inicialização de atributos 26/75

Exercício 04: InicializaçãoO método de atributos setcontentview(...) associa uma Tela(.xml) a uma classe de controle (Activity.java) 27/75

Exercício 04: Inicialização de atributos O método findviewbyid(...) associa componentes da View a atributos da Activity 28/75

Exercício 04: Inicialização de atributos O método setonclicklistener(...) é usado para captura do Clique do Botão 29/75

Exercício 04: Inicialização de atributos O método setonclicklistener(...) é usado para captura do Clique do Botão É comum utilizarmos uma implementação anônima da Interface OnClickListener 30/75

Itens a ponderar Precisamos inicializar a coleção de alunos e exibir os nomes na nossa ListView Contudo, uma ListView é um componente de tela que pode assumir diversos formatos de visualização Com isso, a ListView precisa da ajuda de alguém que saiba como organizar os dados na tela Ou seja, a ListView precisa do apoio de um Adaptador, que saiba converter objetos Java para componetes de Tela. Chamamos esse Objeto de apoio de Adapter. 31/75

ListView's com layouts diferentes 32/75

Exercício 05: Novos atributos 33/75

Exercício 05: Novos atributos Declaração de Novos Atributos 34/75

Exercício 05: Novos atributos Objeto que converte Listas e Vetores em View Declaração de Novos Atributos 35/75

Exercício 05: Novos atributos Declaração de Novos Atributos Definição do Layout que o Adapter usará 36/75

Passo-a-passo Agora que já: associamos objetos java a componentes de tela e criamos o adptador que sabe exibir List<Strings> Vamos inicializar: A coleção de nomes de Alunos(List<Strings>); O adaptador (ArrayAdapter<String>); e A ListView que vai exibir os nomes na tela; No final, associaremos o adaptador à ListView 37/75

Exercício 06: Inicialização da ListView 38/75

Exercício 06: Inicialização da ListView Declaração de Novos Atributos 39/75

Exercício 06: Inicialização da ListView Declaração de Novos Atributos Inicializa a coleção de nomes de Alunos 40/75

Exercício 06: Inicialização da ListView Declaração de Novos Atributos Inicializa o Adapter, com a atividade contexto (this), layout padrão(adapterlayout) e a coleção de alunos (listaalunos) 41/75

Exercício 06: Inicialização da ListView Declaração de Novos Atributos Associação do Adapter à ListView 42/75

Passo-a-passo Agora, podemos atualizar o evento de clique do botão Adicionar Aluno; Maaaas, o que devemos fazer quando do clique? Precisamos: Adicionar o nome digitado no campo ednome à coleção listaalunos; Limpar o conteúdo do campo ednome; e Atualizar o conteúdo da ListView 43/75

Exercício 07: Evento de Click do botão No final do método oncreate(), inclua: Implementação do Evento de Clique 44/75

Exercício 07: Evento de Click do botão No final do método oncreate(), inclua: Implementação do Evento de Clique Adiciona o nome Informado no campo ednome à coleção 45/75

Exercício 07: Evento de Click do botão No final do método oncreate(), inclua: Implementação do Evento de Clique Limpa o conteúdo do campo ednome 46/75

Exercício 07: Evento de Click do botão No final do método oncreate(), inclua: Implementação do Evento de Clique Atualiza o conteúdo da ListView 47/75

Dando um confere no resultado Rode sua App Inclua alguns nomes Ainda poderíamos agregar mais alguma funcionalidade? Que tal exibir um alerta com o nome do aluno, quando do clique em um nome da lista? 48/75

Evento de click da ListView Assim como Button, a ListView possui o evento de click Contudo, a ListView apresenta dois tipos de click: Click curto, quando o usuário clica em um item da ListView; e Click Longo, quando o usuário clica e segura um item da ListView ; Vamos implementar os eventos de clique Longo e Simples no final do método oncreate() 49/75

Exercício 08: Cliques da ListView 50/75

Implementação do Evento de Clique Simples Exercício 08: Cliques da ListView 51/75

Implementação do Evento de Clique Simples Exercício 08: Cliques da ListView Implementação do Evento de Clique Longo 52/75

Implementação do Evento de Clique Simples Exercício 08: Cliques da ListView Implementação do Evento de Clique Longo Retorno == true: não executa o click simples Retorno == false: executa o click simples 53/75

Resultado dos cliques 54/75

Resultado dos cliques 55/75

E quando giramos o device? 56/75

E quando giramos o device? Antes do giro, lista preenchida :-) 57/75

E quando giramos o device? Antes do giro, lista preenchida :-) Depois do giro, lista vazia :-( 58/75

E quando giramos o device? Antes do giro, lista preenchida :-) Quando giramos o device, o Android invoca novamente o método oncreate() da nossa Activity Depois do giro, lista vazia :-( 59/75

E quando giramos o device? Antes do giro, lista preenchida :-) Quando giramos o device, o Android invoca novamente o método oncreate() da nossa Activity Depois do giro, lista vazia :-( Com isso, todos os componentes retornam ao estado inicial 60/75

Persistência do estado da Activity Podemos armazenar o estado da app antes dela ser pausada, parada ou destruída Para isso, utilizamos Métodos de Callback, que são métodos usados quando o cliente requer um retorno do servidor, mas não quer ficar bloqueado, esperando. onsaveinstancestate(): chamado quando o Android vai destruir a Activity, mas sabe que vai restaurá-la depois; Não é chamado quando usuário clica em Back onrestoreinstancestate(): Chamado antes da Activity destruída ser chamada pelo usuário 61/75

Persistência do estado da Activity 62/75

Persistência do estado da Activity Para salvar o estado da Activity, podemos usar o objeto Bundle, gerenciado pelo Android O Bundle empacota um java.util.map O Objeto Bundle é passado pelo Android aos métodos oncreate(), onsaveinstancestate() e onrestoreinstancestate() Podemos utilizar o Map empacotado no Bundle para armazenar o estado da nossa App 63/75

Passo-a-passo Na classe ListaAlunosActivity, defina duas constantes: String TAG = "CADASTRO_ALUNO" Usada para registro de mensagens de LOG no Logcat String ALUNOS_KEY = "LISTA" Usada como Chave para o Map do Objeto Bundle; Implemente os métodos onsaveinstancestate() e onrestoreinstancestate() Atualize o método oncreate(), para tentar recuperar a chave ALUNOS_KEY do Bundle 64/75

Exercício 09: Salvar estado da Activity No início da Activity, vamos incluir as novas constantes: 65/75

Exercício 09: Salvar estado da Activity No início da Activity, vamos incluir as novas constantes: 66/75

Exercício 09: Salvar estado da Activity Após a definição de atributos, inclua o novo método: 67/75

Exercício 09: Salvar estado da Activity Após a definição de atributos, inclua o novo método: 68/75

Exercício 09: Salvar estado da Activity Após o método onsaveinstancestate(), inclua: 69/75

Exercício 09: Salvar estado da Activity Após o método onsaveinstancestate(), inclua: 70/75

E agora, quando giramos o device... Antes do giro, lista preenchida :-) Depois do giro, lista continua preenchida :-) 71/75

Resultado exibido no LogCat Pelas mensagens de log, verificamos a lista de alunos sendo salva e recuperada do objeto Bundle 72/75

O que vem a seguir? Tela de Dados do Aluno Persistência com SQLite Intents Câmera e arquivos LayoutInflater Serviços de background Integração via JSON 73/75

Referências www.caelum.com.br d.android.com LECHETA, Ricardo. Google Android, 3a edição, Novatec, São Paulo, 2013 Código fonte completo: https://github.com/marciopalheta/cursosandroid 74/75

Capítulo 02: Cadastro de Alunos