protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculadora);
ednumero1 = (EditText) findViewById(R.id.ednumero1);
ednumero2 = (EditText) findViewById(R.id.ednumero2);
btsomar = (Button) findViewById(R.id.btsomar);
btsomar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double num1 = Double.parseDouble(
ednumero1.getText().toString());
double num2 = Double.parseDouble(
ednumero2.getText().toString());
double soma = num1 + num2;
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado soma");
dialogo.setMessage("A soma é " + soma);
dialogo.setNeutralButton("OK", null);
dialogo.show();
}
});
}
108
Toda vez que eu clicar no botão ele irá mostrar o resultado da soma na tela através de uma caixa de mensagem. Ótimo!
Vamos executar a nossa aplicação? Para executar faça os mesmos procedimentos que já mostrei. O resultado da execução dessa aplicação você vê na figura seguinte:
Aplicação em execução
OBS: Provavelmente durante a execução da aplicação ao entrar com um número, deve ter surgido no dispositivo um teclado virtual, para ocultar ele é só pressionar ESC.
Irei descrever o código do evento de “clique”. O método setOnClickLisneter serve para definir um evento de “clique” em um componente. Como parâmetro, criamos uma instância da interface OnClickListener, e dentro da mesma existe um método chamado onClick, que será disparado toda vez que o botão for clicado.
A linha:
double num1 = Double.parseDouble(ednumero1.getText().toString());
109
Cria uma variável chamada num1 e atribui a ela o valor que está contido dentro do componente identificado como ednumero1. Eu faço uso do método parseDouble da classe Double pois o conteúdo é uma String. Observem que chamo o método getText de ednumero1 para retornar o conteúdo. Diferente de muitos métodos de retorno String, esse método getText não retorna uma String, mais sim um tipo chamado Editable. Por isso chamei o método toString de getText para que me retornasse uma String. A descrição da próxima linha e a similar ao que já foi explicado.
Logo após a soma dos números que será armazenada na variável soma , vem o código em seguida:
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado soma");
dialogo.setMessage("A soma é " + soma);
dialogo.setNeutralButton("OK", null);
dialogo.show();
Que mostra a soma dos números digitados na tela. Para conseguirmos exibir uma mensagem na tela, tivemos que fazer uso da classe AlertDialog.Builder, responsável por criar caixas de diálogo e exibi-las. Vamos aos comentários.
A linha de comando:
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
Cria a instância da classe AlertDialog.Builder que será representada e guardada dentro da variável dialogo. Na linha seguinte:
dialogo.setTitle("Resultado soma");
Define o título da caixa de diálogo através do método setTitle. Na linha seguinte:
dialogo.setMessage("A soma é " + soma);
Define a mensagem a ser exibida através do método setMessage. Na linha seguinte:
dialogo.setNeutralButton("OK", null);
110
Define o botão “OK” da caixa de texto através do método setNeutralButton. O parâmetro null indica que nenhuma ação será executada quando o botão for clicado (simplesmente a caixa será fechada e nada mais). E para finalizar:
dialogo.show();
Que é responsável por “exibir” a mensagem na tela por imediato.
Agora vamos continuar as outras operações certo ? Retornaremos então para a tela da nossa aplicação e vamos adicionar mais 3 botões referentes as operações restantes. Vamos adicionar na tela mais três botões como segue (um em baixo do outro, conforme a sequência abaixo):
Button
Propriedade
Valor
Id
btsubtrair
text
Subtrair
layout:width
match_parent
Button
Propriedade
Valor
id
btmultiplicar
text
Multiplicar
layout:width
match_parent
Button
Propriedade
Valor
id
btdividir
text
Dividir
layout:width
match_parent
Depois de “finalizado” o que foi se pedido acima, veja como ficou a tela da nossa aplicação:
111
Tela da aplicação da calculadora
Conforme já havia falado, a tela da aplicação nada mais é do que uma estrutura XML. Vamos ver agora a estrutura XML que existe por trás dessa tela que acompanhamos na figura acima:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".CalculadoraActivity">
<TextView android:text="Digite o primeiro número"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ednumero1"
android:layout_below="@+id/textView"
112
android:layout_alignParentLeft="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Digite o segundo número"
android:id="@+id/textView2"
android:layout_below="@+id/ednumero1"
android:layout_alignParentLeft="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ednumero2"
android:layout_below="@+id/textView2"
android:layout_alignParentLeft="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Somar"
android:id="@+id/btsomar"
android:layout_below="@+id/ednumero2"
android:layout_alignParentLeft="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Subtrair"
android:id="@+id/btsubstrair"
android:layout_below="@+id/btsomar"
android:layout_alignParentLeft="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Multiplicar"
android:id="@+id/btmultiplicar"
android:layout_below="@+id/btsubstrair"
android:layout_alignParentLeft="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Dividir"
android:id="@+id/btdividir"
android:layout_below="@+id/btmultiplicar"
android:layout_alignParentLeft="true" />
</RelativeLayout>
Agora retornando para o código do arquivo “CalculadoraActivity.java”, vamos declarar mais três atributos (variáveis) que vão corresponder aos botões que representam as operações restantes, conforme destaca a linha em azul:
113
:
Button btsomar, btsubtrair,btmultiplicar, btdividir;
:
Agora vamos atribuir para cada botão um evento de clique, fazendo com que eles efetuem a sua respectiva operação aritmética. Vamos continuar a codificação do método onCreate , digitando o seguinte código destacado em azul em seguida:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculadora);
ednumero1 = (EditText) findViewById(R.id.ednumero1);
ednumero2 = (EditText) findViewById(R.id.ednumero2);
btsomar = (Button) findViewById(R.id.btsomar);
btsubtrair = (Button) findViewById(R.id.btsubtrair);
btmultiplicar=(Button)findViewById(R.id.btmultiplicar);
btdividir = (Button) findViewById(R.id.btdividir);
btsomar.setOnClickListener(new View.OnClickListener() {
:
});
btsubtrair.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
double num1 = Double.parseDouble
(ednumero1.getText().toString());
double num2 = Double.parseDouble
(ednumero2.getText().toString());
double soma = num1 - num2;
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado subtração");
dialogo.setMessage("A subtração é " + soma);
dialogo.setNeutralButton("OK", null);
114
dialogo.show();
}
});
btmultiplicar.setOnClickListener(new View.
OnClickListener() {
@Override
public void onClick(View arg0) {
double num1 = Double.parseDouble
(ednumero1.getText().toString());
double num2 = Double.parseDouble
(ednumero2.getText().toString());
double soma = num1 * num2;
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado multiplicação");
dialogo.setMessage("A multiplicação é " + soma);
dialogo.setNeutralButton("OK", null);
dialogo.show();
}
});
btdividir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
double num1 = Double.parseDouble
(ednumero1.getText().toString());
double num2 = Double.parseDouble
(ednumero2.getText().toString());
double soma = num1 / num2;
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado divisão");
dialogo.setMessage("A divisão é " + soma);
dialogo.setNeutralButton("OK", null);
dialogo.show();
} });
}
115
Depois de escrever o código acima, salve o arquivo e em seguida teste a aplicação. Veja o resultado na figura seguinte:
Aplicação da calculadora em execução
5.2) Desenvolvendo uma aplicação simples de compras
Agora para aprimorarmos o nosso conhecimento no desenvolvimento de aplicações para Android, vamos criar um outro aplicativo que consiste em um sistema de compras, bem simples. Em nossa aplicação terei disponível cinco produtos: Arroz (R$ 2,69) , Leite (R$ 5,00) , Carne (R$ 10,00), Feijão (R$ 2,30) e Refrigerante Coca-Cola (R$ 2,00). Nessa aplicação eu marco os itens que quero comprar e no final o sistema mostra o valor total das compras.
Na aplicação que iremos desenvolver vamos utilizar os seguintes widgets : TextView, CheckBox e Button.
Bom, vamos criar um novo projeto no Eclipse para Android chamado “SistemaDeCompras”. Siga os dados do projeto abaixo:
Application Name : Sistema de Compras
Company Domain : app.usuario
116
Project location : (Fica ao seu critério onde salvar)
Activity Name: ComprasActivity
Layout Name : activity_compras
Title : Sistema de Compras
Resource Menu Name : menu_compras
Depois de carregado e criado o projeto modifique o componente TextView situado na tela, de acordo com a tabela abaixo:
TextView
Propriedade
Valor
text
Escolha seu produto
Feito o que se foi pedido, adicione os seguintes componentes na sequência:
CheckBox
Propriedade
Valor
text
Arroz (R$ 2,69)
id
Chkarroz
CheckBox
Propriedade
Valor
text
Leite (R$ 5,00)
id
Chkleite
CheckBox
Propriedade
Valor
text
Carne (R$ 9,70)
id
Chkcarne
117
CheckBox
Propriedade
Valor
text
Feijão (R$ 2,30)
id
Chkfeijao
Button
Propriedade
Valor
text
Total das compras
id
bttotal
layout:width
match_parent
Ao final, o layout da nossa aplicação deve estar de acordo com a figura seguinte:
Layout da tela da aplicação
118
Vamos ver agora a estrutura XML da tela desta aplicação:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".ComprasActivity">
<TextView android:text="Escolha o seu produto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Arroz (R$ 2,69)"
android:id="@+id/chkarroz"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Leite (R$ 5,00)"
android:id="@+id/chkleite"
android:layout_below="@+id/chkarroz"
android:layout_alignParentLeft="true" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Carne (R$ 9,70)"
android:id="@+id/chkcarne"
android:layout_below="@+id/chkleite"
android:layout_alignParentLeft="true" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Feijão (R$ 2,70)"
android:id="@+id/chkfeijao"
android:layout_below="@+id/chkcarne"
android:layout_alignParentLeft="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Total das compras"
android:id="@+id/bttotal"
android:layout_below="@+id/chkfeijao"
android:layout_alignParentLeft="true" />
</RelativeLayout>
119
Agora vamos modificar o arquivo “ComprasActivity.java“. O código “completo” desse arquivo será como o código que é exibido abaixo:
package usuario.app.sistemadecompras;
import android.os.Bundle;
import android.app.Activity;
import android.widget.*;
import android.view.*;
import android.app.*;
public class ComprasActivity extends Activity {
CheckBox chkarroz, chkleite, chkcarne, chkfeijao;
Button bttotal;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_compras);
chkarroz = (CheckBox) findViewById(R.id.chkarroz);
chkleite = (CheckBox) findViewById(R.id.chkleite);
chkcarne = (CheckBox) findViewById(R.id.chkcarne);
chkfeijao = (CheckBox) findViewById(R.id.chkfeijao);
Button bttotal = (Button) findViewById(R.id.bttotal);
bttotal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
double total = 0;
if (chkarroz.isChecked())
total += 2.69;
if (chkleite.isChecked())
total += 5.00;
if (chkcarne.isChecked())
total += 9.7;
if (chkfeijao.isChecked())
total += 2.30;
120
AlertDialog.Builder dialogo = new AlertDialog.Builder(
ComprasActivity.this);
dialogo.setTitle("Aviso");
dialogo.setMessage("Valor total da compra :"
+ String.valueOf(total));
dialogo.setNeutralButton("OK", null);
dialogo.show();
}
});
}
}

Comentários
Postar um comentário