SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Desenvolvimento Android
Aline Borges
alinekborges@gmail.com
Slides
• Esta apresentação está disponível em:
http://bit.ly/android01_intro
Trechos de códigos serão disponíveis em:
www.codeshare.io/lyhtt
Objetivo final
• Criar um aplicativo de vendas simples
• Em uma tela inicial, ele irá exibir uma lista de
produtos com imagem e preços diferentes
• Ao clicar em um destes produtos, abrirá uma
nova tela com detalhes e descrição do produto
e um botão para comprar
Objetivo parcial
• Criar classes de modelo, inicializar valores
falsos
• Criar uma lista (Recycler Layout) com itens
personalizados
• Utilizar Picasso para baixar imagens da
internet
Lista em Apps
Conteúdo
• Bibliotecas no Gradle
• package
• RecyclerLayout
• Item layout
• Adapter
• Debug
build.Gradle
• Importando bibliotecas facilmente no gradle
• Download automático via MavenCentral
Gradle Please
build.Gradle
• RecylerLayout – novo ListView
• CardLayout - Cards
• Picasso – Download async de imagens
• dependencies {
• compile fileTree(dir: 'libs', include: ['*.jar'])
• compile 'com.android.support:appcompat-v7:21.0.2'
• compile 'com.android.support:cardview-v7:21.0.0'
• compile 'com.android.support:recyclerview-v7:21.0.0'
• compile 'com.squareup.picasso:picasso:2.4.0'
• }
Modelo
Dica: Alt+insert para gerar automaticamente get & set
Inicializar lista de produtos “falsa”
• Usar para protótipo
• No futuro, essa informação pode vir do Controller
de WebService ou Banco de Dados
RecyclerView
• Lista grande de informações
• Dispõe de forma confortável ao usuário
• Funciona como uma ListView, porém mais
poderoso (podemos definir Lista, grade de
2 colunas, animações facilitadas, etc)
RecyclerView
Adapter
ArrayList
Produto 1
Produto 2
Produto 3
Adapter
Nome  textView.setText(nome)
Preço  textView.setText(preco)
Descrição  textView.setText(descricao)
Nome  textView.setText(nome)
Preço  textView.setText(preco)
Descrição  textView.setText(descricao)
Item layout
• Layout > New > layout resource file
• Nome: item_list
CardView
• Muito usada em design
atual.
• Fácil de deixar bonito ;)
Layout 101
• Margin -> espaço deixado para “fora”
• Padding -> espaço deixado para “dentro”
Layout 101
• Width -> largura
• Height -> altura
• “match_parent” -> encher a tela
• “wrap_content” -> do tamanho do conteúdo
Layout 101 - ScaleType
• ImageView ScaleType
Layout 101
• Gravity
Item layout
• RelativeLayout
• Height = 10dp
• Background = @color/accent
• Large Text
• Id = txtNome
• Medium Text
• Id = txtPreco
• ImageView
• Id = imageView
• Height = 120dp
• ScaleType = centerCrop
• Src = @drawable/produto_01
Adapter
• Recebe uma lista de objetos e liga cada
um deles à uma View
• “Boiler plate code” – “Receita de bolo”
• Usar o código padrão e apenas adaptar o
necessário
• http://www.codeshare.io/hhQUd
Adapter
• Propriedades
• Lista dos objetos
• Contexto
• Construtor
• Recebe o contexto e itens
Adapter
• Inflar o layout do item
• Retorna o tamanho da lista
Adapter
• ViewHolder para os itens do layout que
serão usados
Adapter
• Ligar a propriedade do objeto à um item de
view
Adapter
• Substituir “Object” pelo objeto de modelo
• Usar findViewById para os itens de layout
• Setar as informações
View Holder do Produto
Conectando Adapter -> recycler view
• Rode para testar!
Picasso
• Download asíncrono de imagens
• Problema de download da internet: Demora!
• Picasso é uma biblioteca que baixa as
imagens e coloca no ImageView facilmente
Picasso
• Picasso.with(context).load(object.getImage_url())
• .fit()
• .centerCrop()
• .placeholder(R.drawable.holder)
• .into(holder.imageView);
Bind completo
OnClickListener
• xxx Não colocar OnClickListener no
RecyclerView inteiro
• Ao clicar em qualquer lugar da lista o método
será disparado, não sabemos qual item foi
clicado!
OnClickListener
• Da mesma forma que fizemos com o
botão, é possível criar um clickListener
dentro do adapter, para a view atual
• Isso dá liberdade de colocar click em
apenas uma parte do item (apenas ao
clicar na foto, um botão para deletar,
favoritar, etc)
OnClickListener
• OnBindViewHolder
Dica: Toast libera uma mensagem curta na tela para o
usuário
OnClickListener
• Iniciando outra ativity
Layout Detalhes
• Criar um layout xml para
a página de detalhes
• Misture os layouts para
chegar no resultado
desejado
Parâmetros entre Activity
• Modo básico – key value
• Passando parâmetro
Parâmetros entre Activity
• Modo básico – key value
• Recuperando parâmetro
Parâmetros entre Activity
• Em casos de objetos complexos fica
cansativo enviar e recuperar as
propriedades uma a uma
• Solução: serialização
Serialização
• Biblioteca GSON
• compile 'com.google.code.gson:gson:2.3.1'
JSON
• [
• {
• "id": 1,
• "image_url": “http://caminhodaimagen/imagem.jpg",
• "nome": "Loch Ard Gorge",
• "regiao": "Great Ocean Road",
• "pais": "Austrália",
• "curiosidade": “Texto da curiosidade aqui",
• "url":
"http://destino.herokuapp.com/destinos/1.json"
• }
• ]
Serialização
• Transforma o objeto “Produto” em uma
string para enviar, e torna fácil a
recuperação do objeto na Activity
Serializar
Recuperando
• (DetalhesActivity)
Action Bar
• Disponibiliza ações ao usuário
ActionBar
Personalizando a ActionBar
Menu ActionBar
• res -> menu_main.xml
Menu Action Bar
• onClick
Resumo
• RecyclerView para implementar listas
• Layout de item em xml
• Adapter
• ClickListener
• Layouts avançados
• Parâmetros entre Activity
Obrigada!
• Aline K Borges
• alinekborges@gmail.com

Weitere ähnliche Inhalte

Andere mochten auch

Android - Criando um Adapter personalizado para uma Agenda de Contatos
Android - Criando um Adapter personalizado para uma Agenda de ContatosAndroid - Criando um Adapter personalizado para uma Agenda de Contatos
Android - Criando um Adapter personalizado para uma Agenda de ContatosETEC Monsenhor Antonio Magliano
 
Curso de android
Curso de androidCurso de android
Curso de androidflaviokreis
 
Curso Android Slide 5 Deploy - Wellington Pinto de Oliveira
Curso Android Slide 5 Deploy - Wellington Pinto de OliveiraCurso Android Slide 5 Deploy - Wellington Pinto de Oliveira
Curso Android Slide 5 Deploy - Wellington Pinto de OliveiraWellington Oliveira
 
Minicurso de Android Básico I - Dia 2
Minicurso de Android Básico I - Dia 2Minicurso de Android Básico I - Dia 2
Minicurso de Android Básico I - Dia 2Thales Levi
 
Webinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADA
Webinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADAWebinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADA
Webinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADAAVEVA
 
Curso Android Slide 2 Introdução Plataforma - Wellington PInto de Oliveira
Curso Android Slide 2 Introdução Plataforma - Wellington PInto de OliveiraCurso Android Slide 2 Introdução Plataforma - Wellington PInto de Oliveira
Curso Android Slide 2 Introdução Plataforma - Wellington PInto de OliveiraWellington Oliveira
 
Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteWellington Oliveira
 
Construindo sua primeira aplicação android
Construindo sua primeira aplicação androidConstruindo sua primeira aplicação android
Construindo sua primeira aplicação android666Insanity
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidTiago Bencardino
 
Tech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tipsTech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tipsNexus FrontierTech
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Desenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidDesenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidMayron Cachina
 
Instalação de Aplicativos Linux
Instalação de Aplicativos LinuxInstalação de Aplicativos Linux
Instalação de Aplicativos LinuxWellington Oliveira
 
Mastering RecyclerView Layouts
Mastering RecyclerView LayoutsMastering RecyclerView Layouts
Mastering RecyclerView LayoutsDave Smith
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidJosé Alexandre Macedo
 
Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Khaled Anaqwa
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des appsNoé Breiss
 

Andere mochten auch (20)

Android - Criando um Adapter personalizado para uma Agenda de Contatos
Android - Criando um Adapter personalizado para uma Agenda de ContatosAndroid - Criando um Adapter personalizado para uma Agenda de Contatos
Android - Criando um Adapter personalizado para uma Agenda de Contatos
 
Curso de android
Curso de androidCurso de android
Curso de android
 
Curso Android Slide 5 Deploy - Wellington Pinto de Oliveira
Curso Android Slide 5 Deploy - Wellington Pinto de OliveiraCurso Android Slide 5 Deploy - Wellington Pinto de Oliveira
Curso Android Slide 5 Deploy - Wellington Pinto de Oliveira
 
Minicurso de Android Básico I - Dia 2
Minicurso de Android Básico I - Dia 2Minicurso de Android Básico I - Dia 2
Minicurso de Android Básico I - Dia 2
 
Webinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADA
Webinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADAWebinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADA
Webinar: Usando o InduSoft Web Studio para Criar Gráficos HTML5 IHM/SCADA
 
Fun with RecyclerView
Fun with RecyclerViewFun with RecyclerView
Fun with RecyclerView
 
Curso Android Slide 2 Introdução Plataforma - Wellington PInto de Oliveira
Curso Android Slide 2 Introdução Plataforma - Wellington PInto de OliveiraCurso Android Slide 2 Introdução Plataforma - Wellington PInto de Oliveira
Curso Android Slide 2 Introdução Plataforma - Wellington PInto de Oliveira
 
Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de Transporte
 
Construindo sua primeira aplicação android
Construindo sua primeira aplicação androidConstruindo sua primeira aplicação android
Construindo sua primeira aplicação android
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Tech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tipsTech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tips
 
Recyclerview in action
Recyclerview in action Recyclerview in action
Recyclerview in action
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Desenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidDesenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com Android
 
Bonnes pratiques développement android
Bonnes pratiques développement androidBonnes pratiques développement android
Bonnes pratiques développement android
 
Instalação de Aplicativos Linux
Instalação de Aplicativos LinuxInstalação de Aplicativos Linux
Instalação de Aplicativos Linux
 
Mastering RecyclerView Layouts
Mastering RecyclerView LayoutsMastering RecyclerView Layouts
Mastering RecyclerView Layouts
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma Android
 
Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des apps
 

Ähnlich wie Android 02 - Recycler View Adapter

SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1Bruno Catão
 
Desenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchDesenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchCampus Party Brasil
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftJuliana Chahoud
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google AndroidIury Teixeira
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Elaine Cecília Gatto
 
03_aperfeicoando a interface.pdf
03_aperfeicoando a interface.pdf03_aperfeicoando a interface.pdf
03_aperfeicoando a interface.pdfJoao Neves
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma AndroidÉdipo Souza
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015Nathalie Lima
 
Android: Por onde começar ?
Android: Por onde começar ?Android: Por onde começar ?
Android: Por onde começar ?GDGFoz
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Railstchandy
 
Construção de jogos com o motor unity3 d
Construção de jogos com o motor unity3 dConstrução de jogos com o motor unity3 d
Construção de jogos com o motor unity3 dEduardo Bonfandini
 
React JS - Parte 2
React JS - Parte 2React JS - Parte 2
React JS - Parte 2Bruno Catão
 

Ähnlich wie Android 02 - Recycler View Adapter (20)

Apresentação Google Android
Apresentação Google AndroidApresentação Google Android
Apresentação Google Android
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
 
Desenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchDesenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-Touch
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
 
Tudo sobre listas no android
Tudo sobre listas no androidTudo sobre listas no android
Tudo sobre listas no android
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1
 
03_aperfeicoando a interface.pdf
03_aperfeicoando a interface.pdf03_aperfeicoando a interface.pdf
03_aperfeicoando a interface.pdf
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
 
jQuery mobile
jQuery mobilejQuery mobile
jQuery mobile
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015Android com estilo - GDG Dev Fest 2015
Android com estilo - GDG Dev Fest 2015
 
Android: Por onde começar ?
Android: Por onde começar ?Android: Por onde começar ?
Android: Por onde começar ?
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
 
Construção de jogos com o motor unity3 d
Construção de jogos com o motor unity3 dConstrução de jogos com o motor unity3 d
Construção de jogos com o motor unity3 d
 
React JS - Parte 2
React JS - Parte 2React JS - Parte 2
React JS - Parte 2
 

Kürzlich hochgeladen

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Kürzlich hochgeladen (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Android 02 - Recycler View Adapter