mini curso android
DESCRIPTION
Introdução ao desenvolvimento de aplicações móveis utilizando a plataforma Android.TRANSCRIPT
![Page 1: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/1.jpg)
Android 100% Hands-on
![Page 2: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/2.jpg)
![Page 3: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/3.jpg)
GOOGLE ANdroidMario Jorge Pereira
![Page 4: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/4.jpg)
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
![Page 5: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/5.jpg)
Por onde começar?
http://developer.android.com
![Page 6: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/6.jpg)
ADT Bundle*:
• Eclipse + ADT plugin
• Android SDK Tools
• Android Platform-tools
*Pré requisito: JDK instalada
![Page 7: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/7.jpg)
![Page 8: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/8.jpg)
Desenvolvimento
![Page 9: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/9.jpg)
![Page 10: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/10.jpg)
Chega de Bla Bla Bla!
Vamos Começar?
![Page 11: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/11.jpg)
Eclipse + ADT
![Page 12: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/12.jpg)
Olá MundoFi
le >
New
> A
ndro
id A
pplic
atio
n Pr
ojec
t
![Page 13: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/13.jpg)
File
> N
ew >
And
roid
App
licat
ion
Proj
ect
Olá Mundo
![Page 14: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/14.jpg)
File
> N
ew >
And
roid
App
licat
ion
Proj
ect
Olá Mundo
![Page 15: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/15.jpg)
File
> N
ew >
And
roid
App
licat
ion
Proj
ect
Olá Mundo
![Page 16: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/16.jpg)
Olá Mundo
![Page 17: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/17.jpg)
Para rodar precisamos do emulador
Vamos criar?
![Page 18: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/18.jpg)
AVD Android Virtual Device Maneger
Android SDK Maneger
![Page 19: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/19.jpg)
AVD Android Virtual Device Maneger
![Page 20: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/20.jpg)
![Page 21: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/21.jpg)
Inicie o emulador que voce criou?
Isso demora :( …
Depois que abrir não feche o Emulador!!
![Page 22: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/22.jpg)
![Page 23: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/23.jpg)
Run As.. Android application
![Page 24: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/24.jpg)
![Page 25: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/25.jpg)
Importante!
Activity
XML
public class OlaMundo extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ola_mundo); } }
![Page 26: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/26.jpg)
src/ (código fonte: .java)"
gen/ (código gerado: R.java )"
bin/ (bytecodes: .dex)"
libs/ (bibliotecas)"
res/ (recursos: layouts, strigs, icones …)"
assets/ (outros recursos: arquivos em geral)Es
trutu
ra
![Page 27: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/27.jpg)
<?xml version="1.0" encoding="
utf-8"?>
<resources>! <string nam
e="app_name">Alo Mundo</string
>
<string name="action_setti
ngs">Settings</string>
<string name="hello_world"
>Hello world!</string>
!</resources>
strings.xml
![Page 28: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/28.jpg)
/* AUTO-GENERATED FILE. DO NO
T MODIFY.*/
public final class R {
public static final class
attr {
} public stat
ic final class dimen {
public static final int
activity_horizontal_margin=0x
7f040000;
public static final in
t activity_vertical_margin=0x7
f040001;
} public stati
c final class layout {
public static final in
t activity_main=0x7f030000;
} ...}
R.java
![Page 29: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/29.jpg)
<?xml version="1.0" encoding=“
utf-8"?>
<manifest ...>
... <applicatio
n ... >
<activity
android:name="br.c
om.mariojp.olamundo.OlaMundoAc
tivity"
android:label="@st
ring/app_name" >
<intent-filter>
<action androi
d:name="android.intent.action.
MAIN" />
<category andr
oid:name="android.intent.categ
ory.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
AndroidManifest.xml
![Page 30: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/30.jpg)
Log.[nivel](“TAG”,“MENSAGEM”);
!
Log.v (Verbose)Log.d (Debug)Log.i (Info)Log.w (Warning)Log.e (Erro)Log.wtf (...)
Log
![Page 31: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/31.jpg)
public class OlaMundoActivity extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i("Ola mundo", "onCreate");! }!}
OlaMundoActivity.java
![Page 32: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/32.jpg)
![Page 33: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/33.jpg)
use o logging: Log.i(“Ciclo de Vida”,”<método>”) nos métodos onCreate, onStart, onResume, onRestart, onPause, onStop e onDestroy.
Entendendo o ciclo de vida
![Page 34: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/34.jpg)
Run As.. Android application
![Page 35: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/35.jpg)
Quais os métodos são chamados quando a aplicação inicia?
O que Aconteceu
Quando clicar em voltar qual método é executado?
Alterando o aplicativo de Retrato para paisagem (control +F11) o que acontece?
![Page 36: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/36.jpg)
![Page 37: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/37.jpg)
Ainda no OlaMundo
![Page 38: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/38.jpg)
O arquivo OlaMundoActivity.java
public class OlaMundo extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ola_mundo); }!}
![Page 39: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/39.jpg)
Na pasta res/layout
1. Renomear o arquivo fragment_ola_mundo.xml para activity_ola_mundo.xml
!
2. Alterar a propriedade: tools:context=“br.com.mariojp.OlaMundoActivity”
![Page 40: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/40.jpg)
Um pouco de Layout
activity_ola_mundo.xml
![Page 41: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/41.jpg)
<RelativeLayout ... >
... <Button android
:id="@+id/botao"
android:layout_width="
wrap_content"
android:layout_height=
"wrap_content"
android:text="Botao" /
>
...</RelativeLayou
t>
activity_ola_mundo.xml
![Page 42: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/42.jpg)
Run As.. Android application
![Page 43: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/43.jpg)
<LinearLayout xmlns:android="h
ttp://schemas.android.com/apk/
res/android"
xmlns:tools="http://schema
s.android.com/tools"
android:layout_width="matc
h_parent"
android:layout_height="mat
ch_parent"
android:orientation="horiz
ontal"
tools:context="br.com.mariojp.
olamundo.OlaMundoActivity" >
!. . .
!</LinearLayout>
activity_ola_mundo.xml
![Page 44: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/44.jpg)
Run As.. Android application
![Page 45: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/45.jpg)
<LinearLayout xmlns:android="h
ttp://schemas.android.com/apk/
res/android"
xmlns:tools="http://schema
s.android.com/tools"
android:layout_width="matc
h_parent"
android:layout_height="mat
ch_parent"
android:orientation="verti
cal"
tools:context="br.com.mariojp.
olamundo.OlaMundoActivity" >
!. . .
!</LinearLayout>
activity_ola_mundo.xml
![Page 46: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/46.jpg)
Run As.. Android application
![Page 47: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/47.jpg)
<RelativeLayout ... >
... <Button android
:id="@+id/botao"
android:layout_width="
match_parent"
android:layout_height=
"wrap_content"
android:text="Botao" /
>
...</RelativeLayou
t>
activity_ola_mundo.xml
![Page 48: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/48.jpg)
Run As.. Android application
![Page 49: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/49.jpg)
Um pouco de Comportamento
OlaMundoActivity.java
![Page 50: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/50.jpg)
[Tipo] var = ([Tipo]) findViewById(R.id.[id]);
!var.metodo();!
findbyid
![Page 51: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/51.jpg)
<RelativeLayout ... >
... <TextView
android:id="@+id/texto
"
android:layout_width="
wrap_content"
android:layout_height=
"wrap_content"
android:text="@string/
hello_world" />
...</RelativeLayou
t>
activity_ola_mundo.xml
![Page 52: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/52.jpg)
public class OlaMundoActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ola_mundo); TextView texto = (TextView) findViewById(R.id.texto); texto.setText("Outro Texto"); }!}
OlaMundoActivity.java
![Page 53: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/53.jpg)
Run As.. Android application
![Page 54: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/54.jpg)
Botão Aplicação
Listener
Clicou?
Ação do Botão
![Page 55: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/55.jpg)
public class OlaMundoActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ola_mundo);! Button button = (Button) findViewById(R.id.botao); button.setOnClickListener(new Ouvinte()); }}
OlaMundoActivity.java
![Page 56: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/56.jpg)
public class Ouvinte implements OnClickListener {! @Override public void onClick(View clicado) { Log.i("TAG", "Botao Clicado"); }!}
Ouvinte.java
![Page 57: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/57.jpg)
Run As.. Android application
![Page 58: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/58.jpg)
public class OlaMundoActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ola_mundo); Button button = (Button) findViewById(R.id.botao); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.i("TAG", "Botao Clicado"); } }); }}
OlaMundoActivity.java
![Page 59: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/59.jpg)
Run As.. Android application
![Page 60: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/60.jpg)
<RelativeLayout ... >
... <Button
android:id="@+id/botao
"
android:layout_width="
wrap_content"
android:layout_height=
"wrap_content"
android:text="Botao"
android:onClick="metod
o" />
...</RelativeLayou
t>
activity_ola_mundo.xml
![Page 61: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/61.jpg)
public class OlaMundoActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ola_mundo); } public void metodo(View v) { Log.i("TAG", "Botao Clicado"); }
OlaMundoActivity.java
![Page 62: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/62.jpg)
Run As.. Android application
![Page 63: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/63.jpg)
Toast.makeText(this, "TEXTO", Toast.LENGTH_LONG).s
how();
!!Toast.LENGTH_LONG!Toast.LENGTH_SHORT!
TOAST
![Page 64: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/64.jpg)
public class OlaMundoActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ola_mundo); } public void metodo(View v) { Toast.makeText(this, "AloMundo!", Toast.LENGTH_LONG).show();
}!}
OlaMundoActivity.java
![Page 65: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/65.jpg)
Run As.. Android application
![Page 66: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/66.jpg)
Faculdade
File > New > Android Application Project
![Page 67: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/67.jpg)
Crie o projeto Android
File > New > Android Application Project
![Page 68: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/68.jpg)
public class ListaDisciplinas extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.lista_diciplinas); }}
ListaDisciplinas.java
![Page 69: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/69.jpg)
<?xml version="1.0" encoding="
utf-8"?>
<LinearLayout
xmlns:android="http://schema
s.android.com/apk/res/android"
android:layout_width="match_
parent"
android:layout_height="match
_parent" >
! <ListView
android:id="@+id/lista
_disciplinas"
android:layout_width="
match_parent"
android:layout_height=
"match_parent" >
</ListView>
!</LinearLayout>
lista_disciplinas.xml
![Page 70: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/70.jpg)
public class ListaDisciplinas extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.lista_diciplinas);! String[] disciplinas = {"Redes", "Algoritimos", "Programacao"};
int layout = android.R.layout.simple_list_item_1;! ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,layout, disciplinas);! ListView lista = (ListView) findViewById(R.id.lista_disciplinas);
! lista.setAdapter(adapter);! }}
ListaDisciplinas.java
![Page 71: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/71.jpg)
Run As.. Android application
![Page 72: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/72.jpg)
public class ListaDisciplinas extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { ...! lista.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> adapter, View view,
int posicao, long id) { Toast.makeText(ListaDisciplinas.this, "Clicou "+posicao,
Toast.LENGTH_SHORT).show(); } }); }}
ListaDisciplinas.java
![Page 73: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/73.jpg)
Run As.. Android application
![Page 74: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/74.jpg)
public class ListaDisciplinas extends Activity {! @Override protected void onCreate(Bundle savedInstanceState) { ... lista.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> adapter, View view, int posicao, long id) { Toast.makeText( ListaDisciplinas.this, adapter.getItemAtPosition(posicao).toString(),
Toast.LENGTH_SHORT).show(); return false; } }); }}
ListaDisciplinas.java
![Page 75: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/75.jpg)
Run As.. Android application
![Page 76: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/76.jpg)
O que aconteceu ate aqui?
Repare que o onItemLongClick retorna false => troque por
true.
![Page 77: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/77.jpg)
Run As.. Android application
![Page 78: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/78.jpg)
Vamos criar um formulário
![Page 79: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/79.jpg)
File
> N
ew >
And
roid
XM
L Fi
le
res/layout/disciplina.xml
![Page 80: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/80.jpg)
<?xml version="1.0" encoding="
utf-8"?>
<LinearLayout xmlns:android="h
ttp://schemas.android.com/apk/
res/android"
android:layout_width="matc
h_parent"
android:layout_height="mat
ch_parent"
android:orientation="verti
cal" >
<ImageView
android:layout_width="
wrap_content"
android:layout_height=
"wrap_content"
android:src="@drawable
/ic_launcher" />
<TextView
android:layout_width="
wrap_content"
android:layout_height=
"wrap_content"
android:text="Discipli
na" />
<EditText android:id="@+id
/disciplina"
android:layout_width="
match_parent"
android:layout_height=
"wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
. . .</LinearLayout>
disciplinas.xml
![Page 81: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/81.jpg)
<?xml version="1.0" encoding="
utf-8"?>
<LinearLayout xmlns:android=“h
ttp://schemas.android.com/apk/
res/android"
android:layout_width="matc
h_parent"
android:layout_height="mat
ch_parent"
android:orientation="verti
cal" >
!. . .! <EditText
android:id="@+id/nota2
"
android:layout_width="
match_parent"
android:layout_height=
"wrap_content"
android:ems="10"
android:inputType="num
berSigned" />
<Button android
:id="@+id/botao"
android:layout_width="
wrap_content"
android:layout_height=
"wrap_content"
android:text="Salvar"
/>
!</LinearLayout>
disciplinas.xml
![Page 82: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/82.jpg)
Pode usar o Editor
![Page 83: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/83.jpg)
android.app.Activity
File
> N
ew >
Cla
ss
![Page 84: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/84.jpg)
public class DisciplinaActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.disciplina); }!}
DisciplinaActivity.java
![Page 85: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/85.jpg)
public class ListaDisciplinas extends Activity { . . . public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.lista_disciplinas, menu); return super.onCreateOptionsMenu(menu); }}
ListaDisciplinas.java
![Page 86: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/86.jpg)
<menu xmlns:android="http://sc
hemas.android.com/apk/res/andr
oid"
xmlns:tools="http://schema
s.android.com/tools"
tools:context="br.com.mari
ojp.faculdade.ListaDisciplinas
" >
! <item android
:id="@+id/novo"
android:showAsAction="
always"
android:icon="@android
:drawable/btn_plus"
android:title="Novo"/>
!</menu>
lista_disciplinas.xml
![Page 87: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/87.jpg)
public class ListaDisciplinas extends Activity { . . . public boolean onOptionsItemSelected(MenuItem item) { int itemClicado = item.getItemId(); switch (itemClicado) { case R.id.novo: Intent intent = new Intent(this, Disciplina.class); startActivity(intent); break; default: break; } return super.onOptionsItemSelected(item); }}
ListaDisciplinas.java
![Page 88: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/88.jpg)
Run As.. Android application
![Page 89: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/89.jpg)
![Page 90: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/90.jpg)
<?xml version="1.0" encoding=“
utf-8"?>
<manifest ...>
. . . <applicatio
n ... >
<activity android:name
="br.com.mariojp.faculdade.Dis
ciplina">
</activity>
. . . </applicati
on>
</manifest>
AndroidManifest.xml
![Page 91: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/91.jpg)
Run As.. Android application
![Page 92: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/92.jpg)
![Page 93: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/93.jpg)
![Page 94: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/94.jpg)
public class DisciplinaActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.disciplina); Button button = (Button) findViewById(R.id.botao); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); }
DisciplinaActivity.java
![Page 95: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/95.jpg)
Run As.. Android application
![Page 96: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/96.jpg)
Banco de dados
![Page 97: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/97.jpg)
Vamos pensar um pouco…
DisciplinaDAO
SQLiteOpenHelper
ListaDisciplinas
![Page 98: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/98.jpg)
public class Disciplina { private Long id; private String disciplina; private String professor; private String email; private Double nota1; private Double nota2;// Gerar Get’s e Set's}
Disciplina.java
![Page 99: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/99.jpg)
public class DisciplinaDAO extends SQLiteOpenHelper {! private static final String DATABASE = "BancoDisciplinas"; private static final int VERSAO = 1;! public DisciplinaDAO(Context context) { super(context, DATABASE, null, VERSAO); }!//...!}
DisciplinaDAO.java
![Page 100: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/100.jpg)
public class DisciplinaDAO extends SQLiteOpenHelper {! private static final String DATABASE = "BancoDisciplinas"; private static final int VERSAO = 1;! public DisciplinaDAO(Context context) { super(context, DATABASE, null, VERSAO); }! public void onCreate(SQLiteDatabase db) { String ddl ="CREATE TABLE Disciplinas (id INTEGER PRIMARY KEY,"
+ " disciplina TEXT UNIQUE NOT NULL," + " professor TEXT," + " email TEXT," + " nota1 REAL, nota2 REAL);"; db.execSQL(ddl); }!//...!}
DisciplinaDAO.java
![Page 101: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/101.jpg)
public class DisciplinaDAO extends SQLiteOpenHelper {! private static final String DATABASE = "BancoDisciplinas"; private static final int VERSAO = 1;! public DisciplinaDAO(Context context) { super(context, DATABASE, null, VERSAO); }//...! @Override public void onUpgrade(SQLiteDatabase db, int velha, int nova) {
String ddl ="DROP TABLE IF EXISTS Disciplinas"; db.execSQL(ddl); onCreate(db); }!//...}
DisciplinaDAO.java
![Page 102: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/102.jpg)
public class DisciplinaDAO extends SQLiteOpenHelper {!//...! public void salvar(Disciplina disciplina) { ContentValues values = new ContentValues(); values.put("disciplina", disciplina.getDisciplina()); values.put("professor", disciplina.getProfessor()); values.put("email", disciplina.getEmail()); values.put("nota1", disciplina.getNota1()); values.put("nota2", disciplina.getNota2()); getWritableDatabase().insert("Disciplinas", null, values );
}!//...}
DisciplinaDAO.java
![Page 103: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/103.jpg)
public class DisciplinaActivity extends Activity { private EditText nomeDisciplina; // ...nomeProfessor, email, nota1, nota2;
! protected void onCreate(Bundle savedInstanceState) { nomeDisciplina = (EditText) findViewById(R.id.disciplina);
//... outros findViewById! Button button = (Button) findViewById(R.id.botao); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Disciplina disciplina = new Disciplina(); disciplina.setDisciplina(nomeDisciplina.getText().toString());
// outros set's DisciplinaDAO dao = new DisciplinaDAO(DisciplinaActivity.this);
dao.salvar(disciplina); dao.close(); finish(); } }); }}
DisciplinaActivity.java
![Page 104: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/104.jpg)
public class ListaDisciplinas extends Activity {!private ListView lista;!protected void onCreate(Bundle savedInstanceState) {//... lista = (ListView) findViewById(R.id.lista_disciplinas);! DisciplinaDAO dao = new DisciplinaDAO(this); ArrayList<Disciplina> disciplinas= dao.getLista(); dao.close();! ArrayAdapter<Disciplina> adapter = new ArrayAdapter<Disciplina>(
this, android.R.layout.simple_list_item_1, disciplinas);
lista.setAdapter(adapter);//... }//...}
ListaDisciplinas.java
![Page 105: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/105.jpg)
Run As.. Android application
![Page 106: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/106.jpg)
![Page 107: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/107.jpg)
public class ListaDisciplinas extends Activity {//...protected void onResume() { super.onResume(); DisciplinaDAO dao = new DisciplinaDAO(this); ArrayList<Disciplina> disciplinas= dao.getLista(); dao.close();! ArrayAdapter<Disciplina> adapter = new ArrayAdapter<Disciplina>(
this, layout,android.R.layout.simple_list_item_1); lista.setAdapter(adapter);}//...}
ListaDisciplinas.java
![Page 108: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/108.jpg)
Run As.. Android application
![Page 109: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/109.jpg)
public class ListaDisciplinas extends Activity {//... @Override protected void onResume() { super.onResume(); carregarLista(); }! private void carregarLista() { DisciplinaDAO dao = new DisciplinaDAO(this); ArrayList<Disciplina> disciplinas= dao.getLista(); dao.close(); int layout = android.R.layout.simple_list_item_1; ArrayAdapter<Disciplina> adapter = new ArrayAdapter<Disciplina>(this, layout, disciplinas); lista.setAdapter(adapter); }//...}
ListaDisciplinas.java
![Page 110: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/110.jpg)
![Page 111: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/111.jpg)
public class DisciplinaDAO extends SQLiteOpenHelper {//...! public void deletar(Disciplina disciplina) { String[] args = { disciplina.getId().toString() }; getWritableDatabase().delete("Disciplinas", "id=?", args); }!//...}
DisciplinaDAO.java
![Page 112: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/112.jpg)
public class ListaDisciplinas extends Activity {!private ListView lista;!protected void onCreate(Bundle savedInstanceState) {//... lista = (ListView) findViewById(R.id.lista_disciplinas); registerForContextMenu(lista);//... }//...}
ListaDisciplinas.java
![Page 113: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/113.jpg)
public class ListaDisciplinas extends Activity {//... @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.add("Enviar E-mail"); MenuItem deletar = menu.add("Deletar"); deletar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override public boolean onMenuItemClick(MenuItem item) { DisciplinaDAO dao = new DisciplinaDAO(ListaDisciplinas.this);
dao.deletar(disciplina); dao.close(); carregarLista(); return false; } }); }//...}
ListaDisciplinas.java
![Page 114: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/114.jpg)
public class ListaDisciplinas extends Activity {! private ListView lista; private Disciplina disciplina; protected void onCreate(Bundle savedInstanceState) // ... lista.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> adapter, View view,int posicao, long id) { disciplina = (Disciplina) adapter.getItemAtPosition(posicao);
return false; } });// ... } // ...}
ListaDisciplinas.java
![Page 115: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/115.jpg)
Run As.. Android application
![Page 116: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/116.jpg)
lista.setOnItemClickListener(new OnItemClickListener() {! public void onItemClick(AdapterView<?> adapter, View view, int posicao, long id) {! Disciplina disciplina = (Disciplina) adapter.getItemAtPosition(posicao);
! Intent intent = new Intent(ListaDisciplinas.this,DisciplinaActivity.class);
! intent.putExtra("disciplinaSelecionada", disciplina);! startActivity(intent);! }});
ListaDisciplinas.java
![Page 117: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/117.jpg)
public class DisciplinaActivity extends Activity { private EditText nomeDisciplina; // ...nomeProfessor, email, nota1, nota2;
protected void onCreate(Bundle savedInstanceState) { Button button = (Button) findViewById(R.id.botao); Intent intent = getIntent(); disciplinaSelecionada = (Disciplina) intent.getSerializableExtra("disciplinaSelecionada"); if(disciplinaSelecionada!=null){ button.setText("Alterar"); nomeDisciplina.setText(disciplinaSelecionada.getDisciplina());
} button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Disciplina disciplina = new Disciplina(); disciplina.setDisciplina(nomeDisciplina.getText().toString());
/. . . DisciplinaDAO dao = new DisciplinaDAO(DisciplinaActivity.this);
if(disciplinaSelecionada == null){ dao.salvar(disciplina); }else{ disciplina.setId(disciplinaSelecionada.getId());
dao.alterar(disciplina); } dao.close(); finish(); } }); }
}
DisciplinaActivity.java
![Page 118: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/118.jpg)
public class DisciplinaDAO extends SQLiteOpenHelper {//... public void alterar(Disciplina disciplina) { ContentValues values = new ContentValues(); values.put("disciplina", disciplina.getDisciplina()); values.put("professor", disciplina.getProfessor()); values.put("email", disciplina.getEmail()); values.put("nota1", disciplina.getNota1()); values.put("nota2", disciplina.getNota2()); getWritableDatabase().update("Disciplinas", values, "id=?", new String[]{disciplina.getId().toString()}); }//...}
DisciplinaDAO.java
![Page 119: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/119.jpg)
Run As.. Android application
![Page 120: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/120.jpg)
public class ListaDisciplinas extends Activity { public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); //. . . MenuItem email = menu.add("Enviar E-mail"); Intent intentEmail = new Intent(Intent.ACTION_SEND); intentEmail.setType("message/rfc822"); intentEmail.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); intentEmail.putExtra(Intent.EXTRA_SUBJECT, "ANDROID"); intentEmail.putExtra(Intent.EXTRA_TEXT, "LEGAL!!!"); email.setIntent(intentEmail);//. . . }}
ListaDisciplinas.java
![Page 121: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/121.jpg)
Run As.. Android application
![Page 122: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/122.jpg)
public class DisciplinaActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { foto = (ImageView) findViewById(R.id.foto); foto.setOnClickListener(new OnClickListener() { ! @Override public void onClick(View v) { Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
caminho = Environment.getExternalStorageDirectory().toString()
+"/"+System.currentTimeMillis()+".png"; File arquivo = new File(caminho); Uri localImage = Uri.fromFile(arquivo); camera.putExtra(MediaStore.EXTRA_OUTPUT, localImage);
startActivityForResult(camera, 999); } });}}
DisciplinaActivity.java
![Page 123: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/123.jpg)
public class DisciplinaActivity extends Activity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == 999){ if(resultCode == Activity.RESULT_OK){ Bitmap bitmap = BitmapFactory.decodeFile(caminho); Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 100, 100, true); foto.setImageBitmap(bitmapReduzido); }else{ caminho =null; } } }}
DisciplinaActivity.java
![Page 124: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/124.jpg)
<?xml version="1.0" encoding=“
utf-8"?>
<manifest ...>
… <uses-permi
ssion android:name="android.pe
rmission.WRITE_EXTERNAL_STORAG
E" />
<uses-permission android:n
ame="android.permission.READ_E
XTERNAL_STORAGE" />
…
</manifest>
AndroidManifest.xml
![Page 125: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/125.jpg)
Run As.. Android application
![Page 126: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/126.jpg)
![Page 127: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/127.jpg)
Esta obra está licenciada sob a licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.
![Page 128: Mini curso Android](https://reader034.vdocuments.net/reader034/viewer/2022052310/5549d486b4c9051c778b4f45/html5/thumbnails/128.jpg)
ANDROIDMario Jorge Pereira
Como me encontrar? http://www.mariojp.com.br twitter.com/@mariojp [email protected]