Criando uma calculadora no Android (Fácil)

 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.
O XML do layout ficou assim:
<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.


Sobre debborafernandess
Débora Fernandes atua com desenvolvimento web desde 2008, desenvolvendo sistemas em PHP, JS, JQUERY e criação de sites e blog's nos CMS's Joomla e Wordpress.

14 Responses to Criando uma calculadora no Android (Fácil)

  1. Lucas says:

    O XML não está no post, está? oO

  2. Leonardo says:

    Debora, você poderia enviar esse codigo pra mim por favor…

  3. Paulo says:

    Segui todos os passos descritos nesse tutorial mas está acusando erros na parte “//Pegando os valores do usuário”, o que pode estar ocorrendo?

  4. Arthur says:

    Debora, vc tem o arquivo xml pra enviar por e-mail?? Obrigado.

  5. LSalazar says:

    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);
    }
    }

  6. Ricardo says:

    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

  7. joão felipe says:

    por favor pode me passar esse programa para o meu e-mail, naum ta dando certo aqui

  8. felix says:

    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!

      • felix says:

        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

Deixar mensagem para debborafernandess Cancelar resposta