Buscar

pdm_aula07_View_Completo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação de Dispositivos Móveis
Aula 07
Interfaces Gráficas -Widgets
PDM - Aula07- Ver 01 - 11/10/2012 08:42
Página 7 de 16
View
TextView
EditText
AutoCompleteTextView
Button
ImageButton
CheckBox
ToggleButton
RadioButton e RadioGroup
Spinner (combo)
AnalogClock
DigitalClock
Chronometer
DatePicker
TimePicker
ProgressBar
RatingBar
Toast
ProgressDialog
AlertDialog
Menus e Submenus
LayoutInflater
TabActivity e TabWidget
ListView e ListActivity
Classe View
A classe para componentes visuais 
Desenha na tela através do método onDraw(Canvas)
Widgets
Componentes visuais simples 
Subclasses de View 
TextView, EditText, ImageView, ProgressBar, etc
Classe ViewGroup e Gerenciadores de Layout
Container invisível que guarda View's
Gerencia a disposição destes componentes na tela
FrameLayout, LinearLayout, etc
Activity's especializadas
ListActivity, TabActivity, MapActivity
Como referenciar recursos no XML
Drawable:
android:src="@drawable/nome_drawable"
Identificadores:
Definição: android:id="@+id/identificador"
Referência: android:layout_below="@id/identificador"
Strings:
android:text="@string/nome_string"
Cores:
Forma direta:android:textColor="#RRGGBB"
Forma indireat: android:textColor="@color/nome_cor"
Estilos:
style="@style/nome_estilo“
Tipos de recursos ainda não abordados serão apresentados quando necessário
Dimensões
px (pixels): Corresponde aos pixels reais da tela
in (polegadas): Baseado no tamanho físico da tela
mm (milímetros): Baseado no tamanho físico da tela
pt (pontos): 1 pt = 1/72 in. Também baseado no tamanho físico
dp/dip(Density-independent Pixels): Unidade abstrata baseada na densidade física da tela, onde 160 dp = 1 in = 25.4 mm. Mantém sempre o mesmo tamanho real, independente da densidade. Exemplo: 0.5 in = 12.7 mm = 80 dp. Em 160 dpi, 80 dp = 80 px, já em 240 dpi, 80 dp = 120 px.
sp(Scale-independent Pixels): Semelhante ao dp/dip,mas também escalado pelo tamanho de fonte nas preferências do usuário. Recomendável para especificar tamanhos de fonte pois elas serão ajustadas tanto para densidade da tela quanto para as preferências do usuários.
Interface Gráfica -TextView's
TextView -apresenta texto na tela
EditText -apresenta caixa de edição de texto
AutoCompleteTextView -caixa de edição com auto-complete
Atributos
android:text="@string/..."
android:textColor="@color/..."
android:password="true | false"
android:numeric="integer | signed | decimal"
android:singleLine="true | false"
android:lines -quantas linhas de texto de altura
AutoCompleteTextView
android:completionThreshold="3" -quantidade de caracteres digitados antes aparecer sugestões
setAdapter(ArrayAdapter) -definir lista de opções
Button e ImageButton
Permitem criar botões clicáveis na tela
Button -subclasse de TextView
ImageButton -subclasse de ImageView
Setando imagem via Java e XML
imageButton.setImageResource(R.drawable.image_id)
button.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom)
<ImageButton android:src="@drawable/..." ... />
<Button android:drawableLeft="@drawable/..." android:drawableTop="..."android:drawableRight="..." android:drawableBottom="..." ... />
Detectando clique:
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
CheckBox e ToggleButton
Botão de dois estados, quepermite marcar um item na tela
CheckBox
android:text="@string/..."
ToggleButton
android:textOn="@string/..."
android:textOff="@string/..."
Métodos
boolean isChecked() -retorna estado
void toggle() -alterna estado
void setChecked(boolean) -define estado
boolen performClick() -simula click chamando o método onClick(..) doOnClickListenerassociado
AlertDialog
Exibe um alerta ao usuário
Conteúdo e botões de escolha personalizados
Classe AlertDialog.Builder para construir alertas
setIcon(int resId): Determina o ícone a ser mostrado
setTitle(String): Determina o título do alerta
setMessage(String): Mensagem a ser mostrada no interior do alerta
setPositiveButton(String, listener): Texto do botão positivo (Sim, Yes, Ok, etc)
setNegativeButton(String, listener): Texto do botão negativo (Não, No, etc)
setItems(String [], listener): Items a serem mostrados para usuário selecionar
setSingleChoiceItems(String [], int checkedItem, listener): Determina lista de RadioButtons a serem mostrados ao usuário
setCancelable(boolean): Alerta cancelável ou não. Cancelável significa que usuário não pode fechar com botão voltar.
show(): Exibe o alerta para o usuário
cancel(): Cancela o alerta
Nota: listener é uma instância de DialogInterface.OnClickListener
ProgressDialog
Janela para mostrar o progresso de uma operação
Como usar sem os métodos anteriores
Mostrar o Dialog
dialog = ProgressDialog.show(contexto, titulo, msg, bool indet);
indet = se é indeterminado ou não (percentual)
Feche o Dialog, quando concluir
dialog.dismiss();
Alterar o progresso (se indet = true)
dialog.setProgress(int v) // v entre 0 e 10000
Criando Aplicação Android (Aula07B)
O aplicativo que vamos desenvolver permitirá o usuário verificar a funcionalidade de alguns Views.
Vamos aprender mais elementos visuais e como se faz a ligação desses elementos do layout xml (main.xml, e outros) com a linguagem de programação Java. 
Vamos criar a nossa aplicação “Aula07B”. No Eclipse, faça o seguinte:
Clique no menu “File” -> “New” e escolha a opção “Other...” 
Nas opções que surgiram, selecione “Android Project” e clique em “Next” 
A janela “New Android Project” que surgiu serve para que você digite os dados do projeto que será criado. Preencha-a da seguinte forma:
Project Name: Aula07B
Application name: Aula07B 
Package name: br.pdm.aula07bex1 
Create Activity: Aula07BActivity 
Min SDK Version: 8 (pode definir outro tipo de emulador)
Clique em “Finish” 
Resumo dos nomes ao iniciar um projeto:
Project Name - O nome do projeto que aparecerá no Package Explorer do Eclipse.
Application Name - Nome que aparecerá no menu do Android.
Package Name - Nome único do pacote que identifica a aplicação.
Create Activity - O nome da classe que representa a tela inicial da aplicação.
Min SDK Version – Tipo de Emulador Android
Código – Aula07B
Em seguida vamos criar a tela principal. O arquivo main.xml, responsável pelo layout fica com o seguinte conteúdo. 
	
Listagem 1. main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" >
 <TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="@string/hello" />
 	<Button
 android:id="@+id/buttonAutoComplete"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Auto Complete TextView" />
 
 <Button
 android:id="@+id/buttonImageImageButton"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Imagem e ImageButton" />
 <Button
 android:id="@+id/buttonSpinner"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Spinner (ComboBox)" /> 
 
	<Button
 android:id="@+id/buttonAlertDialog"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="AlertDialog" />
	
 <Button
 android:id="@+id/buttonToast"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Toast" />
 
 <Button
 android:id="@+id/buttonListView"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="ListView" />
 
 	<Button
 android:id="@+id/buttonProgressDialog"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="ProgressDialog" />
 
</LinearLayout>Listagem 2. Aula07BActivity.java
package com.pdm.aula07bex1;
import com.pdm.aula07bex1.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Aula7BActivity extends Activity implements OnClickListener{
 /** Called when the activity is first created. */
	Button b1,b2,b3,b4,b5,b6,b7;
	
	@Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 b1 = (Button) this.findViewById(R.id.buttonImageImageButton);
 b1.setOnClickListener(this);
 b2 = (Button) this.findViewById(R.id.buttonAlertDialog);
 b2.setOnClickListener(this);
 b3 = (Button) this.findViewById(R.id.buttonToast);
 b3.setOnClickListener(this); 
 b4 = (Button) this.findViewById(R.id.buttonListView);
 b4.setOnClickListener(this); 
 b5 = (Button) this.findViewById(R.id.buttonAutoComplete);
 b5.setOnClickListener(this); 
 b6 = (Button) this.findViewById(R.id.buttonSpinner);
 b6.setOnClickListener(this); 
 b7 = (Button) this.findViewById(R.id.buttonProgressDialog);
 b7.setOnClickListener(this); 
 }
	
	public void onClick(View v){
		
		if (v.getId() == b1.getId()){
			startActivity(new Intent(this, ExemploImageImageButton.class));
		}
		if (v.getId() == b2.getId()){
			startActivity(new Intent(this, ExemploAlertDialog.class));
		}
		if (v.getId() == b3.getId()){
			startActivity(new Intent(this, ExemploToast.class));
		}		
		if (v.getId() == b4.getId()){
			startActivity(new Intent(this, ExemploListView.class));
		}	
		if (v.getId() == b5.getId()){
			startActivity(new Intent(this, ExemploAutoCompleteTextView.class));
		}	
		if (v.getId() == b6.getId()){
			startActivity(new Intent(this, ExemploSpinner.class));
		}	
		if (v.getId() == b7.getId()){
			startActivity(new Intent(this, ExemploProgressDialog.class));
		}			
	}
}
Listagem 3. strings.xml
	
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="hello">Aula7BActivity!</string>
 <string name="app_name">Aula7B</string>
 <string name="texto_combo">Isto é um Combo</string>
</resources>
	
Listagem 4. AndroidManifest.xml
	
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.pdm.veiculo"
 android:versionCode="1"
 android:versionName="1.0">
 <uses-sdk android:minSdkVersion="8" />
 <application
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name" >
 <activity
 android:name=".Aula7BActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
		<!-- Atenção - ACRESCENTAR A MEDIDA QUE FOR CODIFICANDO CADA VIEW --> 
 <activity android:name=".ExemploAutoCompleteTextView"></activity>
 <activity android:name=".ExemploImageImageButton"></activity>
 <activity android:name=".ExemploSpinner"></activity>
 <activity android:name=".ExemploAlertDialog"></activity>
 <activity android:name=".ExemploToast"></activity>
 <activity android:name=".ExemploListView"></activity>
 <activity android:name=".ExemploProgressDialog"></activity>
 </application>
</manifest>
Listagem 5. exemplo_autocomplete_textview.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" >
 	<TextView 
		android:layout_width="wrap_content" android:layout_height="wrap_content" 
		android:text="Estados" />
 	
	<AutoCompleteTextView android:id="@+id/estados"
		android:layout_width="fill_parent" android:layout_height="wrap_content"
		android:completionThreshold="1"
		android:completionHint="Digite o nome de um estado" 
		/>
	
	<Button android:id="@+id/buttonSair"
		android:layout_width="wrap_content" android:layout_height="wrap_content" 
		android:layout_gravity="center" android:text="Sair" /> 
</LinearLayout>
Listagem 6. ExemploAutoCompleteTextView.java
package com.pdm.aula07bex1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
public class ExemploAutoCompleteTextView extends Activity implements OnClickListener{
	private static final String[] ESTADOS = new String[] { "Acre", "Alagoas", "Amapá","Amazonas", "Bahia", 
		"Ceará", "Distrito Federal", "Goiás","Espírito Santo", "Maranhão", "Mato Grosso", "Mato Grosso do Sul",
		"Minas Gerais", "Pará", "Paraíba", "Paraná", "Pernambuco", "Piauí",	"Rio de Janeiro", "Rio Grandedo Norte", 
		"Rio Grande do Sul","Rondônia", "Roraima", "São Paulo", "Santa Catarina", "Sergipe","Tocantins"
	};
	
	Button bSair; 
	//@Override
	protected void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.exemplo_autocomplete_textview);
		initEstados();
		bSair = (Button) this.findViewById(R.id.buttonSair);
		bSair.setOnClickListener(this); 
	}
	
	private void initEstados() {
		//Cria um ArrayAdapter para exibir os estados
		ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, ESTADOS);
		//estados
		AutoCompleteTextView estatos = (AutoCompleteTextView) findViewById(R.id.estados);
		estatos.setAdapter(adaptador);
	}
	
	public void onClick(View v){
		if (v.getId() == bSair.getId()){
			finish();
		}					
	}
}
Listagem 7. exemplo_image_imagebutton.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" >
 
 <ImageView android:id="@+id/imgid"
 	android:layout_width="wrap_content"
 	android:layout_height="wrap_content"
 	android:layout_gravity="center" />
 
	<ImageView android:id="@+id/imgid2"
 	android:layout_width="wrap_content"
 	android:layout_height="wrap_content"
 	android:layout_gravity="center" />
	<ImageButton android:id="@+id/imageButton1"
		android:layout_width="fill_parent" android:layout_height="wrap_content"
		android:src="@drawable/smile1" />
	
	<ImageButton android:id="@+id/imageButton2"
			android:layout_width="wrap_content"	android:layout_height="wrap_content" /> 
	
	<Button android:id="@+id/buttonSair"
		android:layout_width="wrap_content" android:layout_height="wrap_content" 
		android:layout_gravity="center" android:text="Sair" />
</LinearLayout>
Listagem 8. ExemploImageImageButton.java
package com.pdm.aula07bex1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;
public class ExemploImageImageButton extends Activity implements OnClickListener {
	
	Button bSair; 
	ImageButton bImagem1,bImagem2;
	
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
	 setContentView(R.layout.exemplo_imagem_imagebutton);
	 ImageView imgView = (ImageView)findViewById(R.id.imgid);
	 imgView.setImageResource(R.drawable.balloons);
	 imgView = (ImageView)findViewById(R.id.imgid2);
	 imgView.setImageResource(R.drawable.icon);
	 bImagem1 = (ImageButton) findViewById(R.id.imageButton1);
	 bImagem1.setOnClickListener(this);
	 
	 bImagem2 = (ImageButton) findViewById(R.id.imageButton2);
	 bImagem2.setImageResource(R.drawable.smile2);
	 bImagem2.setOnClickListener(this);bSair = (Button) this.findViewById(R.id.buttonSair);
		bSair.setOnClickListener(this); 	 
	 
	}
	 
	public void onClick(View v){
		if (v.getId() == bSair.getId()){
			finish();
		}
		if (v.getId() == bImagem1.getId()){
			Toast.makeText(ExemploImageImageButton.this, "Imagem 1 OK", Toast.LENGTH_SHORT).show();
		}					
		if (v.getId() == bImagem2.getId()){
			Toast.makeText(ExemploImageImageButton.this, "Imagem 2 OK", Toast.LENGTH_SHORT).show();
		}							
	}	 
}
	Listagem 9. exemplo_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="wrap_content"
	android:orientation="vertical" >
	
	<TextView
		android:layout_width="fill_parent" android:layout_height="wrap_content"
		android:text="Selecione uma opção" />
	
	<Spinner android:id="@+id/spinnerPlanetas"
		android:layout_width="fill_parent" android:layout_height="wrap_content"
		android:drawSelectorOnTop="true"
		android:prompt="@string/texto_combo" />
	
	<ImageView android:id="@+id/img"
		android:layout_width="fill_parent" android:layout_height="fill_parent" 	/>
	
	<Button android:id="@+id/buttonExibir"
		android:layout_width="wrap_content" android:layout_height="wrap_content" 
		android:layout_gravity="center" android:text="Exibir Valor" />
	
</LinearLayout>
Listagem 10. ExemploSpinner.java
package com.pdm.aula07bex1;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;
public class ExemploSpinner extends Activity implements OnClickListener{
	
	Button bExibir;
	Spinner sPlaneta=null;
	private String[] planetas = new String[] { "Mercúrio", "Venus", "Terra", "Marte", "Júptier", "Saturno", "Urano",
			"Netuno", "Plutão" };
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.exemplo_spinner);
		sPlaneta = (Spinner) findViewById(R.id.spinnerPlanetas);
		ArrayAdapter adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, planetas);
		adaptador.setDropDownViewResource(android.R.layout.simple_spinner_item);
		sPlaneta.setAdapter(adaptador);
		
		bExibir = (Button) this.findViewById(R.id.buttonExibir);
		bExibir.setOnClickListener(this); 	 
	}	
	
	public void onClick(View v){
		if (v.getId() == bExibir.getId()){
			String item = (String) sPlaneta.getSelectedItem();
			Toast.makeText(this, "Valor do Item: " + item, Toast.LENGTH_SHORT).show();
		}	
	}	
}
Listagem 11. exemplo_alertdialog.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" >
 <Button android:id="@+id/b" 
		android:layout_width="fill_parent" android:layout_height="wrap_content" 
		android:text="Teste Alerta" />
</LinearLayout>
Listagem 12. ExemploAlertDialog.java
package com.pdm.aula07bex1;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.view.View.OnClickListener;
public class ExemploAlertDialog extends Activity{
	
	Button b;
	String msg;
	
	//@Override
	protected void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.exemplo_alertdialog);
		// Exibe o alerta de confirmação ao clicar no botão
		b = (Button) findViewById(R.id.b);
		b.setOnClickListener(new OnClickListener() {
			
			public void onClick(View arg0) {
				AlertDialog diaBox = criarDialogBox();
				diaBox.show();
				// WARNING: (in general...)
				// after showing a dialog you should have NO more code. Let the buttons of
				
				// the dialog box handle the rest of the logic. For instance, in this
				// example a modal dialog box is displayed (once shown you can not do
				// anything to the parent until the child is closed) however the code in
				// the parent continues to execute after the show() method is
				// called.
				
				//txtMsg.setText("I am here!");
			}
		});
	}// fim do onCreate
	
	private AlertDialog criarDialogBox(){
		AlertDialog meuDialogo = new AlertDialog.Builder(this)
			//configura messagem, título, e imagem
			.setTitle("Finalização")
			.setMessage("Tem certeza que deseja sair?")
			.setIcon(R.drawable.smile1)
			
			//configura os três botões de opção
			.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int whichButton) {
					//o que deve ser feito quando a resposta for SIM 
					msg = "SIM "+ Integer.toString(whichButton);
					//txtMsg.setText(msg);
					Toast.makeText(ExemploAlertDialog.this, "Sim! " + msg, Toast.LENGTH_SHORT).show();
					finish();
				}
			})//setPositiveButton
		
			.setNeutralButton("Cancela",new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int whichButton) {
					
					//o que deve ser feito quando a resposta for CANCELA
					msg = "CANCELA " + Integer.toString(whichButton);
					//txtMsg.setText(msg);
					Toast.makeText(ExemploAlertDialog.this, "Cancela! " + msg, Toast.LENGTH_SHORT).show();
				}//OnClick
			})//setNeutralButton
			
			.setNegativeButton("Não", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int whichButton) {
					
					//o que deve ser feito quando a resposta for NÃO
					msg = "NÃO " + Integer.toString(whichButton);
					//txtMsg.setText(msg);
					Toast.makeText(ExemploAlertDialog.this, "Não! " + msg, Toast.LENGTH_SHORT).show(); 
				}
			})//setNegativeButton
			
			.create();
			
			return meuDialogo;
		}
}
Listagem 13. exemplo_toast.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" >
	<TextView 
 	android:layout_width="fill_parent" android:layout_height="wrap_content" 
 	android:text="O Toast abriu com uma View em XML.
 	\nClick no botão Repetir para ver Views no Toast também, não somente textos"
 /> 
 
 	<LinearLayout
 			android:orientation="horizontal"
 			android:layout_width="fill_parent"
 			android:layout_height="fill_parent" 
 			android:gravity="center">
	
		<Button android:id="@+id/buttonRepetir"
			android:layout_width="wrap_content" android:layout_height="wrap_content" 
			android:layout_gravity="center" android:text="Repetir" /> 
			
		<Button android:id="@+id/buttonSair"
			android:layout_width="wrap_content" android:layout_height="wrap_content" 
			android:layout_gravity="center" android:text="Sair" /> 
	</LinearLayout>
</LinearLayout>
Listagem 14. exemplo_toast_view_inflate.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" >
 <View 
 android:layout_height="2dip" android:layout_width="fill_parent" 
	 android:background="#FF909090" />
 
	<TextView 
		android:layout_width="fill_parent" android:layout_height="wrap_content" 
		android:text="Exemplo para o LayoutInflater" />
	
	<TextView 
		android:layout_width="fill_parent" android:layout_height="wrap_content" 
		android:text="O Android permite abrir View dentro de Mensagem!" />
	
	<ImageView
		android:layout_width="fill_parent" android:layout_height="wrap_content"
		android:src="@drawable/smile1" />
	
	<View 
	 android:layout_height="2dip" android:layout_width="fill_parent"android:background="#FF909090" />
 
</LinearLayout>
Listagem 15. ExemploToast.java
package com.pdm.aula07bex1;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class ExemploToast extends Activity implements OnClickListener{
	Button bSair,bRepetir; 
	
	Toast toast;
	
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.exemplo_toast);
		
	 bSair = (Button) this.findViewById(R.id.buttonSair);
		bSair.setOnClickListener(this); 	 
	 bRepetir = (Button) this.findViewById(R.id.buttonRepetir);
		bRepetir.setOnClickListener(this); 	 
//		Toast toast = Toast.makeText(this, "Teste de Mensagem", Toast.LENGTH_SHORT);
//		toast.show();
		View tv = getView();
		this.toast = new Toast(this);
		this.toast.setView(tv);
		this.toast.setDuration(Toast.LENGTH_LONG);
		this.toast.show();
	}
	
	private View getView() {
		//View view = new TextView(this);
		//view.setText("Podemos mostrar qualquer coisa no Toast");
		//Abrir uma View a partir de um xml
		LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = inflate.inflate(R.layout.exemplo_toast_view_inflate, null);
		//ImageView view = new ImageView(this);
		//view.setImageResource(R.drawable.smile1);
		return view;
	}
	
	public void onClick(View v){
		if (v.getId() == bSair.getId()){
			finish();
		}	
		if (v.getId() == bRepetir.getId()){
			this.toast.show();
		}	
		
	}
		 
}
Listagem 16. exemplo_listview.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" >
 
	<ImageView
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:src="@drawable/android" />
	
	<View 
	 android:layout_height="2dip" 
	 android:layout_width="wrap_content" 
	 android:background="#cccccc" />
	
	<ListView android:id="@+id/listview"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:textColor="#000000" />
	
</LinearLayout>
Listagem 17. ExemploListView.java
package com.pdm.aula07bex1;
import java.util.ArrayList;
import com.pdm.aula07bex1.adapter.Smile;
import com.pdm.aula07bex1.adapter.SmileAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
public class ExemploListView extends Activity implements OnItemClickListener {
	protected static final String CATEGORIA = "livro";
	private ListView listView;
	//@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.exemplo_listview);
		ArrayList<Smile> lista = new ArrayList<Smile>();
		lista.add(new Smile("Feliz", Smile.FELIZ));
		lista.add(new Smile("Triste", Smile.TRISTE));
		lista.add(new Smile("Louco", Smile.LOUCO));
		// Adaptador customizado
		SmileAdapter adapter = new SmileAdapter(this, lista);
		// ListView
		listView = (ListView) findViewById(R.id.listview);
		listView.setAdapter(adapter);
		listView.setOnItemClickListener(this);
	}
	public void onItemClick(AdapterView<?> parent, View view, int posicao, long id) {
		Log.i(CATEGORIA, "ExemploListView.onItemClick posicao: " + posicao + ", id: " + id);
		// Recupera o Smile naquela posição
		Smile smile = (Smile) listView.getAdapter().getItem(posicao);
		// Exibe um alerta
		Toast.makeText(this, "Smile selecionado: " + smile.nome, Toast.LENGTH_SHORT).show();
	}
}
Listagem 16. exemplo_progressdialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="fill_parent" >
	
 <ImageView android:id="@+id/img"
		android:layout_width="fill_parent" android:layout_height="fill_parent"
	/>
</LinearLayout>
Listagem 17. ExemploProgressDialog.java
package com.pdm.aula07bex1;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.ImageView;
public class ExemploProgressDialog extends Activity {
	private static final String URL = "http://chart.apis.google.com/chart?chs=150x150&cht=qr&chl=www.livroandroid.com.br&choe=UTF-8";
	private ProgressDialog dialog;
	private Handler handler = new Handler();
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.exemplo_progressdialog);
		//Abre a janela com a barra de progresso 
		dialog = ProgressDialog.show(this,"Exemplo", "Buscando imagem, por aguarde...", false,true);
//		ProgressDialog dialog = new ProgressDialog(this);
//		dialog.setTitle("Exemplo");
//		dialog.setMessage("Buscando imagem, por aguarde...");
//		dialog.setIndeterminate(true);
//		dialog.setProgress(int v); // se indeterminate = true - v entre 0 e 10000
//		dialog.setCancelable(true);
//		dialog.show();
		downloadImagem(URL);
	}
	//Faz o download da imagem em uma nova Thread
	private void downloadImagem(final String urlImg) {
		new Thread() {
			@Override
			public void run() {
				try {
					//Faz o download da imagem
					URL url = new URL(urlImg);
					InputStream is = url.openStream();
					final Bitmap imagem = BitmapFactory.decodeStream(is);
					is.close();
					//Atualiza a tela
					atualizaTela(imagem);
				} catch (MalformedURLException e) {
					return;
				} catch (IOException e) {
					//Uma aplicação real deveria tratar este erro
					Log.e("Erro ao fazer o download", e.getMessage(),e);
				}
			}
		}.start();
	}
	//Utiliza um Handler para atualizar a tela
	private void atualizaTela(final Bitmap imagem) {
		handler.post(new Runnable(){
			public void run() {
				//Fecha a janela de progresso
				dialog.dismiss();
				ImageView imgView = (ImageView) findViewById(R.id.img);
				imgView.setImageBitmap(imagem);
			}});
	}
}

Outros materiais