Conexao Java - Sua primeira app Android

Preview:

DESCRIPTION

Presentation did in Conexão Java 2014 event, about how to start with Android.

Citation preview

Sua primeira

Androidapp

ConexãoJava

Suelen GC

Desenvolvedora & Instrutora

github.com/suelengc

GDGSão Paulo

AndroidMeetup

meetup.com/GDG-SP

toda primeira terça do mês

Laptop?quem está com

Laptop?quem está com

?smartquem está com

phone

?smartquem está com

phone

Va m o s a c e s s a o

SITEpe

lo navegadord o c e l u l a r

Typist

clo?!

Judiiiiiith

Sua paciência tem que ser

Infinity

O q u e f a z e r e n t ã o ?

V a m o s c r i a r u m

d o n o s s o f ó r u m

mob

ileapp

2 principais plataformas

Qual plataforma escolher?

interesse

Google Trends 20/05/2014

com o passar

AndroidiOS

do tempo

EclipseJava Objective-C

xCodeli

ngu

age

m

linguagemespecial para Android

IDE

Conexão?Objective-C

ConexãoJava

Y o u w i n ! ! !

Bla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

Conexão Java 2014

miss

ão1

listaC r i a r u m a

p a r a e x i b i r a sperguntasd o f ó r u m

+Javaeclipse

ADTAndroid !Developer!Tools{ }

ANDROID

plugin

+DESENVOLVER

KEEPCALM

AND

BAIXE OECLIPSE ADTdeveloper.android.com/tools/sdk

KEEPCALM

AND

BAIXE OECLIPSE ADTdeveloper.android.com/tools/sdk R

ead

!

to use

?C o m o c r i a r u m a

telaBla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

Conexão Java 2014

e m a n d r o i d

We

bHTMLJava

parte visual

comportamento

And

roidXML

Java

parte visual

comportamento

V a m o scomeçar!

R e a d y t o c o d e ?

src

gen

res

MainActivity.java

R.java

drawable-hdpi

layoutmain_activity.xml

ic_launcher.jpg

(código java / comportamento)

(recursos como imagens, sons, etc)

(gerada automaticamente pelo Android)

ConexaoJava2014

(ponte entre recursos e código java)

AndroidManifest.xml (configurações do projeto)

Partevisual

main_activity.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > !

!

!

!

</LinearLayout>

layoutres

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:layout_height="match_parent" android:layout_width="match_parent"/>!

</LinearLayout>

main_activity.xmllayoutres

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id=“@+id/lista“ android:layout_height="match_parent" android:layout_width="match_parent"/>!

</LinearLayout>

identificador

main_activity.xmllayoutres

Comportamento

!!public class MainActivity { !!!!!!!!!!!!!!!!}

MainActivity.javasrc

import android.app.Activity;!public class MainActivity extends Activity { !!!!!!!!!!!!!!!!}

Activity

Tela do Android

MainActivity.javasrc

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }

!!!!!!!!!!!}

Chamado pelo Androidpara criar a tela

MainActivity.javasrc

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }

!!!!!!!!!!!}

associa layoutcom a Activity

MainActivity.javasrc

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); findViewById(R.id.lista) }

!!!!!!!!!}

recupera uma view da tela pelo id

MainActivity.javasrc

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); ListView lista = (ListView) findViewById(R.id.lista) }

!!!!!!!!!}

MainActivity.javasrc

queremos exibiralgo aqui

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); ListView lista = (ListView) findViewById(R.id.lista) List<Pergunta> perguntas = new BuscadorDePerguntas().getPerguntas(); }

!!!!!!!}

MainActivity.javasrc

Vamos exibirlista de

perguntas

List<Pergunta> queremos

exibirjava

objetos

Bla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

Conexão Java 2014

ListViewem uma

viewxml

feita com

Bla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

Conexão Java 2014

List<Pergunta>

Java xml

ListView

Bla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

Conexão Java 2014

List<Pergunta>

Java xml

ListView

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); ListView lista = (ListView) findViewById(R.id.lista) List<Pergunta> perguntas = new BuscadorDePerguntas().getPerguntas();! ArrayAdapter<Pergunta> adaptador = new ArrayAdapter<Pergunta>(?, ?, ?); }

!!!!!}

MainActivity.javasrc

criar umadapter

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); ListView lista = (ListView) findViewById(R.id.lista) List<Pergunta> perguntas = new BuscadorDePerguntas().getPerguntas();! ArrayAdapter<Pergunta> adaptador = new ArrayAdapter<Pergunta>(this, android.R.layout.simple_list_item_1, perguntas); }

!!}

MainActivity.javasrc

onde?como?

o quê?

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); ListView lista = (ListView) findViewById(R.id.lista) List<Pergunta> perguntas = new BuscadorDePerguntas().getPerguntas();! ArrayAdapter<Pergunta> adaptador = new ArrayAdapter<Pergunta>(this, android.R.layout.simple_list_item_1, perguntas); lista.setAdapter(adaptador); }

!}

MainActivity.javasrc

vincula adapter com a lista

E x e c u t a n d o o a p p n o

t e m o s o r e s u l t a d oemuladorao lado

V a m o s d e i x a r +

divertido

Bla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

Conexão Java 2014

miss

ão2

itemlista

C l i c a r n o

d a

e e x i b i r u m amensagemposição clicada 1

Bla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

cliquei no item

lista

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { //códigos anteriores

lista.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int posicao, long id) { //comportamento do clique aqui } }); }

!!!!}

MainActivity.javasrc

!

de clique no item da lista

Listener

Faz pular pão

Toastclasse

Faz pular mensagens

import android.app.Activity;!public class MainActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { //códigos anteriores

lista.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int posicao, long id) { Toast.makeText(MainActivity.this, "Posição clicada " + posicao, Toast.LENGTH_SHORT).show(); } }); }

!!}

MainActivity.javasrc

Exibindo mensagem

Bla bla bla pergunta 1 Bla bla bla pergunta 2 Bla bla bla pergunta 3

Conexão Java 2014

missõesP a r a b é n s ! ! !

posição clicada 1cumpridas

Suelen GCgithub.com/suelengcwww.suelengc.com.br

Obrigada!gi thub.com/cae lum/conexao java2014

Recommended