Criando uma calculadora no Android (Fácil)
28 de outubro de 2011 14 Comentários
Após a criação do Hello World, o próximo passo não podia ser diferente: criar uma calculadora!
Esses passos são ótimos para se habituar com a sintaxe de qualquer nova linguagem a ser aprendida.
Mas não vamos ficar só nisso não, no final tem um desafio!
Primeiro, criamos um projeto Android (o meu chamei de CalculadoraSimples) , na versão que você tiver configurada no seu SDK .
Criado o projeto, o primeiro passo será alterar o XML do layout. Nele precisaremos de:
- Um campo EditText para receber o valor “1”;
- Um campo EditText para receber o valor “2”;
- Um campo Button para o botão “Somar”;
- Um campo Button para o botão “Subtrair”;
- Um campo Button para o botão “Multiplicar”;
- Um campo Button para o botão “Dividir”;
- Um campo EditText para exibir o resultado.
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Digite o 1º numero: "/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+calc/num1" android:numeric="decimal"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Digite o 2º numero: "/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+calc/num2" android:numeric="decimal"/> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+botao/btSomar" android:text="Somar"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+botao/btSubtrair" android:text="Subtrair"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+botao/btDividir" android:text="Dividir"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+botao/btMultiplicar" android:text="Multiplicar"/> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Resultado: "/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+calc/result"/> </LinearLayout>
E o código da Activity ficou assim:
package br.com.tutoriais; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class CalculadoraSimples extends Activity { //Campos do layout EditText num1, num2, result; Button btSomar, btSubtrair, btDividir, btMultiplicar; //Vars da classe para o calculo double n1, n2, resultado; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Pegando os valores do usuário num1 = (EditText) findViewById(R.calc.num1); num2 = (EditText) findViewById(R.calc.num2); result = (EditText) findViewById(R.calc.result); btSomar = (Button) findViewById(R.botao.btSomar); btSubtrair = (Button) findViewById(R.botao.btSubtrair); btDividir = (Button) findViewById(R.botao.btDividir); btMultiplicar = (Button) findViewById(R.botao.btMultiplicar); //BOTÃO SOMAR btSomar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Passando os valores do layout para as vars da classe n1 = Double.parseDouble(num1.getText().toString()); n2 = Double.parseDouble(num2.getText().toString()); resultado = n1+n2; //Passando os valores da soma para o campo Resultado do layout result.setText(String.valueOf(resultado)); } }); //BOTÃO SUBTRAIR btSubtrair.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Passando os valores do layout para as vars da classe n1 = Double.parseDouble(num1.getText().toString()); n2 = Double.parseDouble(num2.getText().toString()); resultado = n1-n2; //Passando os valores da soma para o campo Resultado do layout result.setText(String.valueOf(resultado)); } }); //BOTÃO DIVIDIR btDividir.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Passando os valores do layout para as vars da classe n1 = Double.parseDouble(num1.getText().toString()); n2 = Double.parseDouble(num2.getText().toString()); resultado = n1/n2; //Passando os valores da soma para o campo Resultado do layout result.setText(String.valueOf(resultado)); } }); //BOTÃO MULTIPLICAR btMultiplicar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Passando os valores do layout para as vars da classe n1 = Double.parseDouble(num1.getText().toString()); n2 = Double.parseDouble(num2.getText().toString()); resultado = n1*n2; //Passando os valores da soma para o campo Resultado do layout result.setText(String.valueOf(resultado)); } }); } }
Pessoal, por ser uma calculadora simples, cujo passo-a-passo da lógica não tem segredo, acho que dispensa mais comentários além do código.
Porém qualquer dúvida, comente e eu responderei o mais didáticamente possível.
E, se não tiver dúvidas, clique aqui e vá para a página de Desafios.
O XML não está no post, está? oO
Ops, falha minha…
Incluído o XML do Layout 😉
Obrigada!
Debora, você poderia enviar esse codigo pra mim por favor…
Envio no seu e-mail esse FDS
Segui todos os passos descritos nesse tutorial mas está acusando erros na parte “//Pegando os valores do usuário”, o que pode estar ocorrendo?
Debora, vc tem o arquivo xml pra enviar por e-mail?? Obrigado.
Bom dia Arthur,
Enviei o main.xml no seu e-mail.
Ola, meu codigo esta no mesmo formato do seu. Mas quando executo tenho o mesmo erro no meu AndroidMotorola 1.5 ou no emulador. É como se meu ambiente nao estivesse configurado corretamente.Pode me ajudar? o Codigo segue abaixo..O erro é o “o aplicativo parou inescperamente. tente novamente”.
package meu.pacote.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class VariosCliquesActivity extends Activity {
/** Called when the activity is first created. */
Button bt_chamatela1, bt_chamatela2, bt_voltarprincipal;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Executa função de chamada do main
chama_main();
//——————————————————————–
bt_chamatela1 = (Button) findViewById(R.id.bt_entrar);
bt_chamatela2 = (Button) findViewById(R.id.bt_detalhecliente);
bt_voltarprincipal = (Button) findViewById(R.id.bt_voltar);
bt_chamatela1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
chama_tela1();
}
});
//——————————————————————–
//Chama tela 2
//——————————————————————–
bt_chamatela2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
chama_tela2();
}
});
//——————————————————————–
//Chama tela 3
//——————————————————————–
bt_voltarprincipal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chama_main();
}
});
//——————————————————————–
}
public void chama_tela1(){
setContentView(R.layout.nova);
}
public void chama_tela2(){
setContentView(R.layout.dadoscliente);
}
public void chama_main(){
setContentView(R.layout.main);
}
}
Débora Fernandes
queria sabe seu email pra mim manda meu codigo pra vc pois eu acho que ele deve estar cm erro no xml qunado executo o programa no emulador da essa menssage
has stopped unexpectedly
por favor pode me passar esse programa para o meu e-mail, naum ta dando certo aqui
Olá Felipe,
Enviei o código no seu e-mail, espero que ajude!
Você indica algum livro de java para iniciantes?
eu uso javaScript, sei logica e tals..
conhece algum livro que seria mais para iniciar mesmo no java?
Até Mais
Bom dia Felix,
Para início, eu indico a apostila de Java da Caelum.
É gratuita, em PDF(você pode imprimir se quiser) e você baixa direto do site da Caelum.
Bons estudos!
Assim que eu terminar meu livro atual vou ler essa apostila,
já favoritei seu blog, e espero que o conteúdo postado e que futuramente será postado seja muito útil para meu aprendizado 🙂
Até Mais