SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
O fantástico
mundo de Android

Suelen G. Carvalho
Quem sou eu

www.SuelenGC.com.br | slideshare.net/suelengc
MULHERES15!
!
!

Cupom especial para o dia das mulheres!!
15% de desconto
O que é o Android ?
Linguagem

IDE

www.developer.android.com

ADT
Activity
Criar uma tela
Activity

SuaActivity
SuaActivity.java
public class SuaActivity extends Activity {
protected void onCreate (Bundle b) {
super.onCreate(b);
setContentView(R.layout.main_activity)
!

// restante do seu código aqui…
}
}

(comportamento)
main_activity.xml
<LinearLayout xmlns=“…” >
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“Olá Mundo!”
… />
</LinearLayout>

(view)
Olá Mundo!
Estrutura de diretórios

resources

ProjetoAgenda!
src
SuaActivity.java
comportamento
res
layout
main_activity.xml	
  
drawable-mdpi!
icon.jpg
drawable-ldpi!
view
icon.jpg	
  
values!
! !
strings.xml
Outras view's
Nome:

<TextView…/>

<EditText…/>

Telefone:
Nota:

<RatingBar…/>

Salvar

<Button…/>
<LinearLayout xmlns=“…” >
<EditText android:text=“Nome: “…/>
<TextView…/>
!

<EditText android:text=“Telefone: “…/>
<TextView…/>
!

<EditText android:text=“Nota: “…/>
<RatingBar…/>
!

<Button android:text=“Salvar“
android:id=“@+id/btn_salvar“…/>
<!-- cotinua… -->
</LinearLayout>
Comportamento ao botão
public class SuaActivity extends Activity {
protected void onCreate (Bundle b) {
super.onCreate(b);
setContentView(R.layout.main_activity)
!

// Recupera o botão da tela
Button salvar = (Button) findViewById(R.id.btn_salvar);
!

//Adiciona comportamento ao botão
salvar.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
// COMPORTAMENTO AQUI…
}
});
}
}
Ciclo de Vida da Activity
Ciclo de vida de uma Activity
onCreate
!

onStart
!

onResume
Android Kill

onRestart

onPause
!

onStop
!

onDestroy
Listas e Adapter's
Exibir uma lista
Fulano
Beltrano
Ciclano
Adapter
Fulano

Beltrano Ciclano

Fulano
Beltrano
Ciclano

0

1
2
Objetos (Java)
View (xml)
public class SuaActivity extends Activity {
protected void onCreate (Bundle b) {
// código anterior…
!

// Objetos Java
String[] contatos = new String[]{“Fulano”,
“Beltrano”,
“Ciclano”};
!

// Adapter (java -> xml)
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this,
android.R.layout.simple_list_item_1,
contatos);
!

// Vincular adapter a lista
ListView lista = (ListView) findViewById(R.id.lista);
lista.setAdapter(adapter);
}
}
Banco de Dados
Criar um DAO
SQLiteOpenHelper

ContatoDAO
SQLiteOpenHelper
public class ContatoDAO extends SQLiteOpenHelper {
public void ContatoDAO(Context ctx) {
super(ctx, “agenda", null, 1);
}
public void onCreate (SQLiteDataBase db) {
String ddl = “create table contato (name text, telefone text);“;
db.execSQL(ddl);
}
!

public void onUpgrade (SQLiteDataBase db) {
// vamos deixar vazio por enquanto
}
}
Incluindo um contato
public class ContatoDAO extends SQLiteOpenHelper {
// código anterior…
!
public void adiciona(Contato contato){
// insere contato no banco…
ContentValues values = new ContentValues();
values(“nome”, contato.getNome());
values(“telefone”, contato.getTelefone());
!
getWritableDatabase().insert(“agenda”, null, values);
}
// apagar, atualizar e buscar aqui em breve ;)
}
Apagando um contato
public class ContatoDAO extends SQLiteOpenHelper {
!

public void apaga(Contato contato){
String[] ids = {contato.getId().toString()};
getWritableDatabase().delete(“agenda”, “id=?”, ids);
}
!

}
Buscando os contatos
public class ContatoDAO extends SQLiteOpenHelper {
!
public List<Contato> busca(Contato contato){
List<Contato> contatos = new ArrayList<Contato>();
!
SQLiteDatabase database = getReadableDatabase();
Cursor cursor = database.rawQuery(“select * from agenda;”, null);
!
while (cursor.moveToNext()) {
Contato contato = criarContatoDo(cursor);
contatos.add(contato);
}
return contatos;
}
}
Atualizando um contato
public class ContatoDAO extends SQLiteOpenHelper {
public void atualiza(Contato contato){
ContentValues values = new ContentValues();
values(“nome”, contato.getNome());
values(“telefone”, contato.getTelefone());
String[] ids = {contato.getId().toString()};
!

getWritableDatabase().update(“agenda”, values, id, ids);
}
}
Estou por aí se precisarem ;)

Mais conteúdo relacionado

Destaque

Para quem você desenvolve?
Para quem você desenvolve?Para quem você desenvolve?
Para quem você desenvolve?Livia Gabos
 
A Open Web Platform em prol do seu app!
A Open Web Platform em prol do seu app!A Open Web Platform em prol do seu app!
A Open Web Platform em prol do seu app!Vanessa Me Tonini
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de JogoBruno Cicanci
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design PatternsBruno Cicanci
 
Guia de estilos para a interface do usuário
Guia de estilos para a interface do usuárioGuia de estilos para a interface do usuário
Guia de estilos para a interface do usuárioPopUp Design
 
Palestra design digital
Palestra design digitalPalestra design digital
Palestra design digitalpopup_design
 
Como desenvolver sites utilizando Design Responsivo
Como desenvolver sites utilizando Design ResponsivoComo desenvolver sites utilizando Design Responsivo
Como desenvolver sites utilizando Design ResponsivoPopUp Design
 

Destaque (7)

Para quem você desenvolve?
Para quem você desenvolve?Para quem você desenvolve?
Para quem você desenvolve?
 
A Open Web Platform em prol do seu app!
A Open Web Platform em prol do seu app!A Open Web Platform em prol do seu app!
A Open Web Platform em prol do seu app!
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de Jogo
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design Patterns
 
Guia de estilos para a interface do usuário
Guia de estilos para a interface do usuárioGuia de estilos para a interface do usuário
Guia de estilos para a interface do usuário
 
Palestra design digital
Palestra design digitalPalestra design digital
Palestra design digital
 
Como desenvolver sites utilizando Design Responsivo
Como desenvolver sites utilizando Design ResponsivoComo desenvolver sites utilizando Design Responsivo
Como desenvolver sites utilizando Design Responsivo
 

Semelhante a O fantástico mundo de Android

Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dadosHenrique Fernandes
 
Desvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor AndroidDesvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor Androidjoaobmonteiro
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#Felipe Pimentel
 
Drupal 7 Direto das Trincheiras
Drupal 7  Direto das TrincheirasDrupal 7  Direto das Trincheiras
Drupal 7 Direto das TrincheirasRafael Caceres
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryMarketing Digital ODIG
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBLuciano Borges
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Rodrigo Rocha
 
Conexao Java - Sua primeira app Android
Conexao Java - Sua primeira app AndroidConexao Java - Sua primeira app Android
Conexao Java - Sua primeira app AndroidSuelen Carvalho
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosHenrique Gogó
 
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...tdc-globalcode
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão GeralKaio Valente
 
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáZarathon Maia
 

Semelhante a O fantástico mundo de Android (20)

Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Desvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor AndroidDesvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor Android
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
Drupal 7 Direto das Trincheiras
Drupal 7  Direto das TrincheirasDrupal 7  Direto das Trincheiras
Drupal 7 Direto das Trincheiras
 
Vb
VbVb
Vb
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEB
 
Mini curso de c#.net
Mini curso de c#.netMini curso de c#.net
Mini curso de c#.net
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Kotlin first
Kotlin firstKotlin first
Kotlin first
 
Conexao Java - Sua primeira app Android
Conexao Java - Sua primeira app AndroidConexao Java - Sua primeira app Android
Conexao Java - Sua primeira app Android
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
 
Android na Prática
Android na PráticaAndroid na Prática
Android na Prática
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão Geral
 
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
 

Mais de Suelen Carvalho

Porque Métodos Ágeis não é pra você!
Porque Métodos Ágeis não é pra você!Porque Métodos Ágeis não é pra você!
Porque Métodos Ágeis não é pra você!Suelen Carvalho
 
Scrum: Relembrando os por quês?
Scrum: Relembrando os por quês?Scrum: Relembrando os por quês?
Scrum: Relembrando os por quês?Suelen Carvalho
 
Techtrends xp desafios da agilidade com trabalho remoto
Techtrends xp   desafios da agilidade com trabalho remotoTechtrends xp   desafios da agilidade com trabalho remoto
Techtrends xp desafios da agilidade com trabalho remotoSuelen Carvalho
 
Introdução a Android Instant Apps
Introdução a Android Instant AppsIntrodução a Android Instant Apps
Introdução a Android Instant AppsSuelen Carvalho
 
Construindo Times de Alta Performance - Produtos & Engenharia
Construindo Times de Alta Performance - Produtos & EngenhariaConstruindo Times de Alta Performance - Produtos & Engenharia
Construindo Times de Alta Performance - Produtos & EngenhariaSuelen Carvalho
 
Git Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differencesGit Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differencesSuelen Carvalho
 
Dynamic Programming and Reinforcement Learning applied to Tetris Game
Dynamic Programming and Reinforcement Learning applied to Tetris GameDynamic Programming and Reinforcement Learning applied to Tetris Game
Dynamic Programming and Reinforcement Learning applied to Tetris GameSuelen Carvalho
 
Desenvolvimento de Novos Líderes - Paidéia Educação
Desenvolvimento de Novos Líderes - Paidéia EducaçãoDesenvolvimento de Novos Líderes - Paidéia Educação
Desenvolvimento de Novos Líderes - Paidéia EducaçãoSuelen Carvalho
 
O sucesso do seu app está nos detalhes!
O sucesso do seu app está nos detalhes!O sucesso do seu app está nos detalhes!
O sucesso do seu app está nos detalhes!Suelen Carvalho
 
Supporting Coding and Testing
Supporting Coding and TestingSupporting Coding and Testing
Supporting Coding and TestingSuelen Carvalho
 
Intercon Android 2014 - Google Play In App Billing
Intercon Android 2014 - Google Play In App BillingIntercon Android 2014 - Google Play In App Billing
Intercon Android 2014 - Google Play In App BillingSuelen Carvalho
 
Semana da Computação USP São Carlos 2014 - Carreira Mobile
Semana da Computação USP São Carlos 2014 - Carreira MobileSemana da Computação USP São Carlos 2014 - Carreira Mobile
Semana da Computação USP São Carlos 2014 - Carreira MobileSuelen Carvalho
 
TDC 2014 - Tudo sobre GCM Push Notifications
TDC 2014 - Tudo sobre GCM Push NotificationsTDC 2014 - Tudo sobre GCM Push Notifications
TDC 2014 - Tudo sobre GCM Push NotificationsSuelen Carvalho
 
Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...
Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...
Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...Suelen Carvalho
 
A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.Suelen Carvalho
 
Usando o Poder da API Fragments
Usando o Poder da API FragmentsUsando o Poder da API Fragments
Usando o Poder da API FragmentsSuelen Carvalho
 

Mais de Suelen Carvalho (20)

Porque Métodos Ágeis não é pra você!
Porque Métodos Ágeis não é pra você!Porque Métodos Ágeis não é pra você!
Porque Métodos Ágeis não é pra você!
 
Scrum: Relembrando os por quês?
Scrum: Relembrando os por quês?Scrum: Relembrando os por quês?
Scrum: Relembrando os por quês?
 
Techtrends xp desafios da agilidade com trabalho remoto
Techtrends xp   desafios da agilidade com trabalho remotoTechtrends xp   desafios da agilidade com trabalho remoto
Techtrends xp desafios da agilidade com trabalho remoto
 
Introdução a Kotlin
Introdução a KotlinIntrodução a Kotlin
Introdução a Kotlin
 
Introdução a Android Instant Apps
Introdução a Android Instant AppsIntrodução a Android Instant Apps
Introdução a Android Instant Apps
 
Google IO'17
Google IO'17Google IO'17
Google IO'17
 
Construindo Times de Alta Performance - Produtos & Engenharia
Construindo Times de Alta Performance - Produtos & EngenhariaConstruindo Times de Alta Performance - Produtos & Engenharia
Construindo Times de Alta Performance - Produtos & Engenharia
 
Git Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differencesGit Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differences
 
Dynamic Programming and Reinforcement Learning applied to Tetris Game
Dynamic Programming and Reinforcement Learning applied to Tetris GameDynamic Programming and Reinforcement Learning applied to Tetris Game
Dynamic Programming and Reinforcement Learning applied to Tetris Game
 
Desenvolvimento de Novos Líderes - Paidéia Educação
Desenvolvimento de Novos Líderes - Paidéia EducaçãoDesenvolvimento de Novos Líderes - Paidéia Educação
Desenvolvimento de Novos Líderes - Paidéia Educação
 
O sucesso do seu app está nos detalhes!
O sucesso do seu app está nos detalhes!O sucesso do seu app está nos detalhes!
O sucesso do seu app está nos detalhes!
 
Go lang
Go langGo lang
Go lang
 
Supporting Coding and Testing
Supporting Coding and TestingSupporting Coding and Testing
Supporting Coding and Testing
 
Intercon Android 2014 - Google Play In App Billing
Intercon Android 2014 - Google Play In App BillingIntercon Android 2014 - Google Play In App Billing
Intercon Android 2014 - Google Play In App Billing
 
Semana da Computação USP São Carlos 2014 - Carreira Mobile
Semana da Computação USP São Carlos 2014 - Carreira MobileSemana da Computação USP São Carlos 2014 - Carreira Mobile
Semana da Computação USP São Carlos 2014 - Carreira Mobile
 
TDC 2014 - Tudo sobre GCM Push Notifications
TDC 2014 - Tudo sobre GCM Push NotificationsTDC 2014 - Tudo sobre GCM Push Notifications
TDC 2014 - Tudo sobre GCM Push Notifications
 
Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...
Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...
Mobile Conf 2014 - Sua carreira e o que o desenvolvimento mobile tem a ver co...
 
7 Masters sobre Android
7 Masters sobre Android7 Masters sobre Android
7 Masters sobre Android
 
A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.
 
Usando o Poder da API Fragments
Usando o Poder da API FragmentsUsando o Poder da API Fragments
Usando o Poder da API Fragments
 

O fantástico mundo de Android