168
domingo, 21 de outubro de 12

Aula android 02.pdf

Embed Size (px)

Citation preview

Page 1: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 2: Aula android 02.pdf

Carlos Cavalcanti

@CarlosCaval [email protected]

domingo, 21 de outubro de 12

Page 3: Aula android 02.pdf

Fragmentação

domingo, 21 de outubro de 12

Page 4: Aula android 02.pdf

Fragmentação

domingo, 21 de outubro de 12

Page 5: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 6: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 7: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 8: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 9: Aula android 02.pdf

Extra!

Fragments

http://www.youtube.com/watch?v=A3z5TO8COZM

Palestra sobre fragments

domingo, 21 de outubro de 12

Page 10: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 11: Aula android 02.pdf

Troca de informações entre telas

domingo, 21 de outubro de 12

Page 12: Aula android 02.pdf

String mensagemQualquer = "Olá!";Intent intent = new Intent(this, SegundaActivity.class);intent.putExtra("mensagem", mensagemQualquer);startActivity(intent);

Intent intent = getIntent();String mensagem = intent.getStringExtra("mensagem");

MainActivity

SegundaActivity

domingo, 21 de outubro de 12

Page 13: Aula android 02.pdf

putExtra()domingo, 21 de outubro de 12

Page 14: Aula android 02.pdf

get?Extra()

domingo, 21 de outubro de 12

Page 15: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 16: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

domingo, 21 de outubro de 12

Page 17: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 18: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 19: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

intent.getFloatExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 20: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

intent.getFloatExtra(name, defaultValue)

intent.getFloatArrayExtra(name)

domingo, 21 de outubro de 12

Page 21: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

intent.getFloatExtra(name, defaultValue)

intent.getFloatArrayExtra(name)

intent.getIntArrayExtra(name)

domingo, 21 de outubro de 12

Page 22: Aula android 02.pdf

• Criar duas activitys

• A activity principal deverá ter um editText e um Button. Ao pressionar o button deverá abrir uma outra activity e mandar via putExtra() a mensagem do editText

• Deverá exibir a mensagem digitada no editText em um textView

String mensagemQualquer = "Olá!";Intent intent = new Intent(this, SegundaActivity.class);intent.putExtra("mensagem", mensagemQualquer);startActivity(intent);

Intent intent = getIntent();String mensagem = intent.getStringExtra("mensagem");

MainActivity

SegundaActivity

domingo, 21 de outubro de 12

Page 23: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 24: Aula android 02.pdf

logcatdomingo, 21 de outubro de 12

Page 25: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 26: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 27: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 28: Aula android 02.pdf

Exemplo Log//Verbose

Log.v("Tag", "Messagem"); //Debug Log.d("Tag", "Messagem"); //Info Log.i("Tag", "Messagem"); //Warn Log.w("Tag", "Messagem"); //Error Log.e("Tag", "Messagem");

import android.util.Log;

domingo, 21 de outubro de 12

Page 29: Aula android 02.pdf

Filtragem

domingo, 21 de outubro de 12

Page 30: Aula android 02.pdf

Filtragem

domingo, 21 de outubro de 12

Page 31: Aula android 02.pdf

Nivel Sigla Cor

Debug D azul

Verbose V preto

Info I verde

Warn W laranja

Error E vermelho

Tipos de logs e suas cores

domingo, 21 de outubro de 12

Page 32: Aula android 02.pdf

Exercício

• Logar os eventos da activity

domingo, 21 de outubro de 12

Page 33: Aula android 02.pdf

Ciclo de vida

da activity

domingo, 21 de outubro de 12

Page 34: Aula android 02.pdf

public class CicloDeVidaActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("Teste", "onCreate"); } @Override protected void onStart() { super.onStart(); Log.i("Teste", "onStart"); } @Override protected void onRestart() { super.onRestart(); Log.i("Teste", "onRestart"); }

@Override protected void onResume() { super.onResume(); Log.i("Teste", "onResume"); } @Override protected void onPause() { super.onPause(); Log.i("Teste", "onPause"); } @Override protected void onStop() { super.onStop(); Log.i("Teste", "onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.i("Teste", "onDestroy"); }}

domingo, 21 de outubro de 12

Page 35: Aula android 02.pdf

Componentes de tela

domingo, 21 de outubro de 12

Page 36: Aula android 02.pdf

TextView’s <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />

<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Small Text" android:textAppearance="?android:attr/textAppearanceSmall" />

domingo, 21 de outubro de 12

Page 37: Aula android 02.pdf

CheckBox e RadioButton<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" />

<RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

domingo, 21 de outubro de 12

Page 38: Aula android 02.pdf

CheckBox e RadioButton<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" />

<RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

domingo, 21 de outubro de 12

Page 39: Aula android 02.pdf

CheckBox e RadioButton<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" />

<RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

domingo, 21 de outubro de 12

Page 40: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 41: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 42: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 43: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 44: Aula android 02.pdf

ProgressBar e SeekBar <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />

<SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="30" />

domingo, 21 de outubro de 12

Page 45: Aula android 02.pdf

ProgressBar e SeekBar <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />

<SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="30" />

domingo, 21 de outubro de 12

Page 46: Aula android 02.pdf

ProgressBar e SeekBar <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />

<SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="30" />

domingo, 21 de outubro de 12

Page 47: Aula android 02.pdf

QuickContactBadge e RatingBar

<QuickContactBadge android:id="@+id/quickContactBadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" />

<RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 48: Aula android 02.pdf

QuickContactBadge e RatingBar

<QuickContactBadge android:id="@+id/quickContactBadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" />

<RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 49: Aula android 02.pdf

QuickContactBadge e RatingBar

<QuickContactBadge android:id="@+id/quickContactBadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" />

<RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 50: Aula android 02.pdf

QuickContactBadge

domingo, 21 de outubro de 12

Page 51: Aula android 02.pdf

RadioButton <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" >

<RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="RadioButton" />

<RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

<RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" /> </RadioGroup>

domingo, 21 de outubro de 12

Page 52: Aula android 02.pdf

RadioButton <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" >

<RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="RadioButton" />

<RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

<RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" /> </RadioGroup>

domingo, 21 de outubro de 12

Page 53: Aula android 02.pdf

EditText

<EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="olá" />

domingo, 21 de outubro de 12

Page 54: Aula android 02.pdf

EditText

<EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="olá" />

domingo, 21 de outubro de 12

Page 55: Aula android 02.pdf

ImageView e ImageButton

<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

<ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

domingo, 21 de outubro de 12

Page 56: Aula android 02.pdf

ImageView e ImageButton

<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

<ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

domingo, 21 de outubro de 12

Page 57: Aula android 02.pdf

ImageView e ImageButton

<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

<ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

domingo, 21 de outubro de 12

Page 58: Aula android 02.pdf

Time & Date

<TimePicker android:id="@+id/timePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<DatePicker android:id="@+id/datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chronometer" />

domingo, 21 de outubro de 12

Page 59: Aula android 02.pdf

Time & Date

<TimePicker android:id="@+id/timePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<DatePicker android:id="@+id/datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chronometer" />

domingo, 21 de outubro de 12

Page 60: Aula android 02.pdf

Exercício• Criar um novo projeto

• Inserir na tela 3 RadioButton’s

• Os RadioButton’s deverão ter o texto:

• Tela 1

• Tela 2

• Tela 3

• Inserir na tela 1 Button

• Criar mais 3 telas (activitys)

• Cada tela deverá exibir um texto diferente de sua preferência

• Cada RadioButton deverá ter uma tela correspondente que ao clicar no botão deverá abri-la

domingo, 21 de outubro de 12

Page 61: Aula android 02.pdf

Exercício• Criar um novo projeto

• Inserir na tela 3 RadioButton’s

• Os RadioButton’s deverão ter o texto:

• Tela 1

• Tela 2

• Tela 3

• Inserir na tela 1 Button

• Criar mais 3 telas (activitys)

• Cada tela deverá exibir um texto diferente de sua preferência

• Cada RadioButton deverá ter uma tela correspondente que ao clicar no botão deverá abri-la

Dica

domingo, 21 de outubro de 12

Page 62: Aula android 02.pdf

Exercício• Criar um novo projeto

• Inserir na tela 3 RadioButton’s

• Os RadioButton’s deverão ter o texto:

• Tela 1

• Tela 2

• Tela 3

• Inserir na tela 1 Button

• Criar mais 3 telas (activitys)

• Cada tela deverá exibir um texto diferente de sua preferência

• Cada RadioButton deverá ter uma tela correspondente que ao clicar no botão deverá abri-la

DicaRadioButton radio0 = (RadioButton) findViewById(R.id.radio0);if (radio0.isChecked()) ...

domingo, 21 de outubro de 12

Page 63: Aula android 02.pdf

Layouts

domingo, 21 de outubro de 12

Page 64: Aula android 02.pdf

Altura e largura

Atributo Descriçãoandroid:layout_height Especifica a altura de um

componente

android:layout_width Especifica a largura de um componente

domingo, 21 de outubro de 12

Page 65: Aula android 02.pdf

Valores para altura e largura

• fill_parent - Significa que o componente precisa ocupar todo o tamanho definido por seu pai (layout), ou seja, este deverá ser sempre usado quando o componente necessita ocupar o espaço de layout.

• wrap_content -Para o componente ocupar apenas o tamanho necessário na tela

• Valor - Podemos também passar um valor númerico informando o tamanho do componente

domingo, 21 de outubro de 12

Page 66: Aula android 02.pdf

Valores para altura e larguraAtributo Descrição

fill_parent Significa que o componente precisa ocupar todo o tamanho definido por seu pai (layout), ou seja, este deverá ser sempre usado quando o componente necessita ocupar o espaço de layout.

wrap_content Para o componente ocupar apenas o tamanho necessário na tela

Valor Podemos também passar um valor númerico informando o tamanho do componente

domingo, 21 de outubro de 12

Page 67: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 68: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 69: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 70: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="300px" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 71: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="300dp" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 72: Aula android 02.pdf

Density-independent pixel (dp)

A conversão de unidades de DP para pixels da tela é simples: px = dp * (dpi / 160). Por exemplo, em uma tela de 240 dpi, 1 dp igual a 1,5 pixels físicas.

domingo, 21 de outubro de 12

Page 73: Aula android 02.pdf

AbsoluteLayout

• Este tipo de layout permite posicionar os componentes da maneira desejada através das coordenadas do x e y.

domingo, 21 de outubro de 12

Page 74: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 75: Aula android 02.pdf

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="39dp" android:layout_y="37dp" android:text="Button" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="180dp" android:layout_y="203dp" android:text="Button" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="205dp" android:layout_y="69dp" android:text="TextView" />

</AbsoluteLayout>

domingo, 21 de outubro de 12

Page 76: Aula android 02.pdf

FrameLayout

• Este layout é utilizado por um componente que precisa preencher a tela inteira. É possível inserir mais de um componente no FrameLayout, porém sempre serão os últimos que ficarão no topo do elemento, obedecendo o conceito de pilha. Isso é útil para construir aplicações com uma imagem em segundo plano.

domingo, 21 de outubro de 12

Page 77: Aula android 02.pdf

LinearLayout

• Este layout é usado para organizar os componentes na vertical ou horizontal através do atributo android:orientation.

domingo, 21 de outubro de 12

Page 78: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 79: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 80: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_gravity="center"/>

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="right"/> </LinearLayout>

domingo, 21 de outubro de 12

Page 81: Aula android 02.pdf

Peso - weight

domingo, 21 de outubro de 12

Page 82: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_gravity="center"/> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 83: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_gravity="center"/> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 84: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_weight="1" android:layout_gravity="center"/> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <EditText android:id="@+id/editText2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="2"/>

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 85: Aula android 02.pdf

Quanto maior o weight maior será sua importância (peso)

domingo, 21 de outubro de 12

Page 86: Aula android 02.pdf

TableLayout

• E s t e é u s a d o p a r a o r g a n i z a r o s componentes em uma tabela, com linhas e colunas

domingo, 21 de outubro de 12

Page 87: Aula android 02.pdf

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:shrinkColumns="2"> <TableRow> <TextView android:text="coluna 1"/> <TextView android:text="coluna 2"/> </TableRow> <TableRow> <TextView android:text="coluna 1"/> <TextView android:text="coluna 2"/> <TextView android:text="Texto grande que vai siar da tela, deverá quebrar a coluna pois o shrinkColumn=2"/> </TableRow> <TableRow> <TextView android:text="coluna 1"/> <TextView android:text="coluna 2"/> <TextView android:text="Coluna 3"/> </TableRow> </TableLayout>

domingo, 21 de outubro de 12

Page 88: Aula android 02.pdf

RelativeLayout

• Este Permite posicionar um componente relativo a outro, por exemplo, abaixo, acima ou ao lado de um componente já existente

domingo, 21 de outubro de 12

Page 89: Aula android 02.pdf

Atributo Descriçãoandroid:layout:below Posiciona abaixo do componente indicado

android:layout:above Posiciona acima do componente indicado

android:layout:toRightOf Posiciona a direita do componente indicado

android:layout:toLeftOf Posiciona a esquerda do componente indicado

android:layout:alignParentTop Alinha no topo do componente indicado

android:layout:alignParentBottom Alinha abaixo do componente indicado

android:layout:layout_marginTop Utilizado para definir um espaço na margem superior do componente

android:layout:layout_marginRight Utilizado para definir um espaço a direita do componente

android:layout:layout_marginLeft Utilizado para definir um espaço a esquerda do componente

domingo, 21 de outubro de 12

Page 90: Aula android 02.pdf

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/txtLogin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Usuario"/> <EditText android:id="@+id/edtLogin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/txtLogin"/> </RelativeLayout>

domingo, 21 de outubro de 12

Page 91: Aula android 02.pdf

BroadcastReceiver

domingo, 21 de outubro de 12

Page 92: Aula android 02.pdf

O que é BroadcastReceiver ?

domingo, 21 de outubro de 12

Page 93: Aula android 02.pdf

Ela é usada para responder a determinados eventos.

domingo, 21 de outubro de 12

Page 94: Aula android 02.pdf

Por exemplo...

domingo, 21 de outubro de 12

Page 95: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 96: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 97: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 98: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 99: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 100: Aula android 02.pdf

Como implementar?

domingo, 21 de outubro de 12

Page 101: Aula android 02.pdf

Primeiramente é necessário criar uma classe que herde do BroadcastReceiver

domingo, 21 de outubro de 12

Page 102: Aula android 02.pdf

public class ExemploReceiver extends BroadcastReceiver {

@Override public void onReceive(Context context, Intent intent) { String mensagem ="Oi mãe, to sendo executado pelo receiver! :D"; Toast.makeText(context, mensagem, Toast.LENGTH_LONG).show(); }

}

domingo, 21 de outubro de 12

Page 103: Aula android 02.pdf

public class ExemploReceiver extends BroadcastReceiver {

@Override public void onReceive(Context context, Intent intent) { String mensagem ="Oi mãe, to sendo executado pelo receiver! :D"; Toast.makeText(context, mensagem, Toast.LENGTH_LONG).show(); }

}

domingo, 21 de outubro de 12

Page 104: Aula android 02.pdf

public class ExemploReceiver extends BroadcastReceiver {

@Override public void onReceive(Context context, Intent intent) { String mensagem ="Oi mãe, to sendo executado pelo receiver! :D"; Toast.makeText(context, mensagem, Toast.LENGTH_LONG).show(); }

}

domingo, 21 de outubro de 12

Page 105: Aula android 02.pdf

Para configurar o BroadcastReceiver é necessário utilizar a tag <receiver> no arquivo manifest.

Além disso...

domingo, 21 de outubro de 12

Page 106: Aula android 02.pdf

<receiver android:name=".ExemploReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter></receiver>

domingo, 21 de outubro de 12

Page 107: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 108: Aula android 02.pdf

Notification

domingo, 21 de outubro de 12

Page 109: Aula android 02.pdf

O que é Notification ?

domingo, 21 de outubro de 12

Page 110: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 111: Aula android 02.pdf

O que é necessário?

domingo, 21 de outubro de 12

Page 112: Aula android 02.pdf

Criar um

domingo, 21 de outubro de 12

Page 113: Aula android 02.pdf

Criar um

Notification

domingo, 21 de outubro de 12

Page 114: Aula android 02.pdf

Criar um

Notification

NotificationManager

domingo, 21 de outubro de 12

Page 115: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 116: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 117: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 118: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 119: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 120: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 121: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 122: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 123: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 124: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 125: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 126: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 127: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 128: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 129: Aula android 02.pdf

Notification notification = new Notification(icone, texto, quando);

Parâmetro Descrição

init O id do recurso do icone para exibir na barra de status da notificação

texto Titulo do texto para exibir na barra de status na primeira vez em que a notificação aparece

quando A data e hora para exibir a notificação.

domingo, 21 de outubro de 12

Page 130: Aula android 02.pdf

Parâmetro Descrição

Contexto O contexto, referência da activity que está criando a notificação.

Código Código para identificar a requisição.

Intent Contém as informações da activity que deverá ser exibida caso o usuário pressione a notificação

flags Flags opcionais para controlar a abertura da intent fornecida

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0);

domingo, 21 de outubro de 12

Page 131: Aula android 02.pdf

Parâmetro Descrição

Contexto Referência da activity que está criando a notification

Titulo Titulo da notificação

Conteúdo Conteúdo com os detalhes da notification

intent Referência da PendingIntent

notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent);

domingo, 21 de outubro de 12

Page 132: Aula android 02.pdf

Exercício• Criar 2 telas

• Uma deverá ter um botão que irá criar uma notificação

• A outra tela deverá ser chamada ao clicar na notificação. Esta deverá ter um textView.

domingo, 21 de outubro de 12

Page 133: Aula android 02.pdf

Ao pressionar a notificação ela não está sumindo!!!!

domingo, 21 de outubro de 12

Page 134: Aula android 02.pdf

É necessário mandar fecha-la em algum momento.

domingo, 21 de outubro de 12

Page 135: Aula android 02.pdf

Através do método cancel() do NotificationManager

domingo, 21 de outubro de 12

Page 136: Aula android 02.pdf

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tela_para_notificacao); NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); notificationManager.cancel(R.string.app_name); }

domingo, 21 de outubro de 12

Page 137: Aula android 02.pdf

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tela_para_notificacao); NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); notificationManager.cancel(R.string.app_name); }

domingo, 21 de outubro de 12

Page 138: Aula android 02.pdf

É possível...

domingo, 21 de outubro de 12

Page 139: Aula android 02.pdf

É possível...

domingo, 21 de outubro de 12

Page 140: Aula android 02.pdf

É possível...

fazer o celular vibrar!domingo, 21 de outubro de 12

Page 141: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

domingo, 21 de outubro de 12

Page 142: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

domingo, 21 de outubro de 12

Page 143: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa

domingo, 21 de outubro de 12

Page 144: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa

domingo, 21 de outubro de 12

Page 145: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração

domingo, 21 de outubro de 12

Page 146: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração

domingo, 21 de outubro de 12

Page 147: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 148: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 149: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração

domingo, 21 de outubro de 12

Page 150: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração

domingo, 21 de outubro de 12

Page 151: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 152: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 153: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração Pausa Pausa

domingo, 21 de outubro de 12

Page 154: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 155: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 156: Aula android 02.pdf

Porque não usar uma simples Thread?

domingo, 21 de outubro de 12

Page 157: Aula android 02.pdf

Thread

domingo, 21 de outubro de 12

Page 158: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 159: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 160: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 161: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 162: Aula android 02.pdf

Por isso usamos o service!

domingo, 21 de outubro de 12

Page 163: Aula android 02.pdf

O que é necessário?

domingo, 21 de outubro de 12

Page 164: Aula android 02.pdf

Criar uma classe que herde de Service e implemente Runnable

domingo, 21 de outubro de 12

Page 165: Aula android 02.pdf

Primeiro criar uma tela com um botão...

domingo, 21 de outubro de 12

Page 166: Aula android 02.pdf

Definir no manifest o serviço

<service android:name=".ExemploService"> <intent-filter> <action android:name="SERVICE1"/> </intent-filter></service>

domingo, 21 de outubro de 12

Page 167: Aula android 02.pdf

private Button btnExecutarServico;

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnExecutarServico = (Button) findViewById(R.activity_main.btnExecutarServico); btnExecutarServico.setOnClickListener(this); }

@Override public void onClick(View v) { Intent intent = new Intent("SERVICE1"); startService(intent); }

domingo, 21 de outubro de 12

Page 168: Aula android 02.pdf

public class ExemploService extends Service implements Runnable {

@Override public void onCreate() { super.onCreate(); new Thread(this).start(); } @Override public IBinder onBind(Intent intent) { // Não queremos interagir com o serviço... return null; } @Override public void run() { int contador = 1; Looper.prepare(); while (true) { Log.i("ExemploService","Oi, sou um serviço! Numero " + contador); contador++; try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } }}

domingo, 21 de outubro de 12