Tutorial Android - Uma Calculadora Simples

21 respostas
FabioNoth

Ola pessoal, fiz um pequeno tutorial android e gostaria de compartilhar com vocês…
Obrigado!

http://www.fabionoth.com/index.php/tutoriais/3-tutorial-android-uma-calculadora-simples
segue o link! :smiley:

21 Respostas

Elizeu_Santos

to louco pra aprender android! vou começar hoje! vou usar seu tutorial e alguns outros que encontrei.
parabéns pela iniciativa!

Elizeu_Santos

poderia postar o link dos videos?

FabioNoth

Opa… Vlw Elizeu_Santos… segue ai e avalia!
Veja o que acha…

FabioNoth

esta no canal http://youtube.com/fabiofozpr

também tem no blog: http://caffeinespower.blogspot.com/2012/02/tutorial-android-uma-calculadora.html

Elizeu_Santos

vou visitar seu canal assim que chegar em casa ou amanha a noite(aqui na empresa não tenho acesso total a internet). certamente irei seguir, compartilhar com amigos e deixar comentários. novamente, parabéns pela iniciativa.

FabioNoth

Coloquei uma enquete agora no blog…
vejam o que acham melhor…

FabioNoth

novo link: http://www.fabionoth.com/index.php/tutoriais/3-tutorial-android-uma-calculadora-simples

leuuhhdantinhah

Hey Fábio… muito bom o tutorial! Pra quem está começando (meu caso) vale a pena… muitos conceitos aprendi!

Obrigado!

Spammer

gostei do tutorial muito bom

FabioNoth

Opa, muito obrigado pessoal…
Espero ajudar…
Caso surgir alguma dúvida, até mesmo sugestão só avisar por aqui.
Fiz uns tutoriais novos la no blog…
http://fabionoth.com

leuuhhdantinhah

Olá Fábio! Bom dia!

Queria tua ajuda se for possível:

Baseado no seu projeto da Calculadora Android, eu criei uma calculadora um pouco mais avançada (layout em anexo).
Eu queria umas dicas sobre como atribuir valores aos botões, fazer com que, ao clicar nestes botões, apareçam os digitos nos campos dos 1º e 2º valores (conforme layout), ou ainda se possível, que existisse um só campo(AutoCompleteText) para todos valores. Não precisa ter pressa pra responder. Porém, quero muito aprender.

Eu criei o código abaixo na Activity:

package br.ProjCalc2012.leodantas;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.AutoCompleteTextView;

import android.widget.Button;

import android.widget.EditText;

public class ProjetoCalculadora2012Activity extends Activity {
/** Called when the activity is first created. */

AutoCompleteTextView valor01, valor02, resultado;

Button n1, n2, n3, n4, n5, n6, n7, n8, n9, n0, igual, mais,
menos, vezes, dividido, apagou, virg, pont;

double v1, result;
int nu1 = 1, nu2 = 2, nu3 = 3, nu4 = 4, nu5 = 5, nu6 = 6,
nu7 = 7, nu8 = 8, nu9 = 9, nu0 = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    valor01 = (AutoCompleteTextView) findViewById(R.calculo.valor01);
    valor02 = (AutoCompleteTextView) findViewById(R.calculo.valor02);
    resultado = (AutoCompleteTextView) findViewById(R.calculo.resultado);
    
    mais = (Button) findViewById(R.calculo.soma);
    menos = (Button) findViewById(R.calculo.subtracao);
    vezes = (Button) findViewById(R.calculo.multiplicacao);
    dividido = (Button) findViewById(R.calculo.divisao);
    igual = (Button) findViewById(R.calculo.resultou);
    apagou = (Button) findViewById(R.calculo.apaga);
    virg = (Button) findViewById(R.calculo.virgula);
    pont = (Button) findViewById(R.calculo.ponto);
    n1 = (Button) findViewById(R.calculo.num1);
    n2 = (Button) findViewById(R.calculo.num2);
    n3 = (Button) findViewById(R.calculo.num3);
    n4 = (Button) findViewById(R.calculo.num4);
    n5 = (Button) findViewById(R.calculo.num5);
    n6 = (Button) findViewById(R.calculo.num6);
    n7 = (Button) findViewById(R.calculo.num7);
    n8 = (Button) findViewById(R.calculo.num8);
    n9 = (Button) findViewById(R.calculo.num9);
    n0 = (Button) findViewById(R.calculo.zero);
    		
    		
    n1.setOnClickListener(new View.OnClickListener() {
		
		public void onClick(View v) {
			// TODO Auto-generated method stub
			
				valor01.setText(String.valueOf(nu1));
			   			
	}
});

    
}

}

Abraço! e mais uma vez, obrigado pelo tutorial da calculadora! Muito bom mesmo!

FabioNoth

Para cada botão você possui uma ação simples de adicionar um texto.
No seu exemplo você fez correto. Só setar o valor referente aquele botão.

Acredito que seja essa sua dúvida.
Qualquer coisa, coloca o código com as tags do forum.

L

Legal, obrigado por compartilhar! Ajuda para os iniciantes sempre é bem vinda.

leuuhhdantinhah

Valew Fábio!

leuuhhdantinhah

Fábio!

Consegui fazer uma calc um pouco mais avançada, baseada no teu tutorial e nesse outro video da Núcleo Computação - Engenharia da Computação - Sistema de informação:

(http://www.youtube.com/watch?v=V6xGm7IPgKg&feature=fvsr).

Os códigos do meu projeto estão praticamente iguais ao autor do projeto do vídeo. O layout que eu fiz está simples como o dele, porém, diferente.

Obrigado Fábio, os teus videos me incentivaram muito a estudar mais e mais. Foi excencial! Estou progredindo!

Deus te Abençoe!

Abraço!

Marcilhovisck

Isso foi o que fiz, não consegui fazer os números aparecem no campo EditText, tem como alguém me ajudar?
leuuhhdantinhah vc pode disponibilizar seu código para que eu possa olhar?
Desde já agradeço.

public class CalccomDigitos extends Activity {
	
	EditText etResultado;
	Button btnNum1, btnNum2, btnNum3, btnNum4, btnNum5,
			btnNum6, btnNum7, btnNum8, btnNum9, btnNum0, btnSomar,
			btnSubtrair, btnMultiplicar, btnDividir, btnIgual;
	
	double resultado;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calccom_digitos);
       
        //Resultado
        etResultado = (EditText) findViewById(R.id.editText1);
        
        //Botões
        btnNum1 = (Button) findViewById(R.id.numer01);
        btnNum2 = (Button) findViewById(R.id.numer02);
        btnNum3 = (Button) findViewById(R.id.numer03);
        btnNum4 = (Button) findViewById(R.id.numer04);
        btnNum5 = (Button) findViewById(R.id.numer05);
        btnNum6 = (Button) findViewById(R.id.numer06);
        btnNum7 = (Button) findViewById(R.id.numer07);
        btnNum8 = (Button) findViewById(R.id.numer08);
        btnNum9 = (Button) findViewById(R.id.numer09);
        btnNum0 = (Button) findViewById(R.id.numer0);
        btnIgual = (Button) findViewById(R.id.igual);
        btnSomar = (Button) findViewById(R.id.somar);
        btnSubtrair = (Button) findViewById(R.id.subtrair);
        btnMultiplicar = (Button) findViewById(R.id.multiplicar);
        btnDividir = (Button) findViewById(R.id.dividir);
        
        btnIgual.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View arg0) {
				
				//num1 = Double.parseDouble(etNumero1.getText().toString());
				resultado = Double.parseDouble(etResultado.getText().toString());
				etResultado.setText(String.valueOf(resultado));
				
				
				
				
					
				
				
			}
		});
FabioNoth

leuuhhdantinhah,
Opa… parabéns pelo trampo! Não consegui ver o vídeo ainda. Mais assim que possível estarei vendo e favoritando.
Gosto de trabalhos assim. Que ajudam a divulgar o conhecimento.

Marcilhovisck
Conseguiu resolver? Qualquer coisa responde ai. Amanha a noite te dou uma ajuda.

Fiquem com deus. E assim que possível estarei postando mais vídeos.
Estou atualizando o site. Fiquem a vontade para comentar la também.
fabionoth.com

Marcilhovisck

Fábio, eu mudei o código, pq mudei o layout da calculadora, meu layout está igual ao postado anteriormente, quero saber como crio o evento agora? Por enquanto só fiz o nº 0 aparecer hehe mas não sei se está certo, se puder me dá uma moral ae, agradeço. abraços

package com.Hallison.calculadoraa2;

import com.Hallison.calculadoraa2.R;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Calc2 extends Activity {

	Button btnNum1, btnNum2, btnNum3, btnNum4, btnNum5,
	btnNum6, btnNum7, btnNum8, btnNum9, btnNum0, btnLimp,
	btnNumSomar, btnSub, btnMul, btnDiv,btnIgu, btnPont,
	btnVirg;
	
	TextView txt1, txt2, txtResultado;
	
	int num1, num2, num3, num4, num5, num6,
	num7, num8, num9,num0;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_calc2);
        
        txt1 = (TextView) findViewById(R.id.TextView1);
        txt2 = (TextView) findViewById(R.id.TextView2);
        txtResultado = (TextView) findViewById(R.id.TextView3);
        
        btnNum0 = (Button) findViewById(R.id.btn0);
        btnNum1 = (Button) findViewById(R.id.btn1);
        btnNum2 = (Button) findViewById(R.id.btn2);
        btnNum3 = (Button) findViewById(R.id.btn3);
        btnNum4 = (Button) findViewById(R.id.btn4);
        btnNum5 = (Button) findViewById(R.id.btn5);
        btnNum6 = (Button) findViewById(R.id.btn6);
        btnNum7 = (Button) findViewById(R.id.btn7);
        btnNum8 = (Button) findViewById(R.id.btn8);
        btnNum9 = (Button) findViewById(R.id.btn9);
        
        btnNumSomar = (Button) findViewById(R.id.btnSomar);
        btnSub = (Button) findViewById(R.id.btnSubtrair);
        btnMul = (Button) findViewById(R.id.btnMultiplicar);
        btnDiv = (Button)findViewById(R.id.btnDividir);
        btnLimp = (Button) findViewById(R.id.btnLimpar);
        
        btnPont = (Button) findViewById(R.id.btnPonto);
        btnVirg = (Button) findViewById(R.id.btnVirgula);
        btnIgu = (Button) findViewById(R.id.btnIgual);
        
        
        btnNum0.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				txt1.setText(String.valueOf(num0));
				txt2.setText(String.valueOf(num0));
			}
		});
        
        
        btnNum1.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				txt1.setText(String.valueOf(num1));
				txt2.setText(String.valueOf(num1));
			
				
			}
		});
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.view_calc2, menu);
        return true;
    }
}
FabioNoth

Vou dar uma olhada essa noite.
Mais tenta revisar a ação de cada botão. Pelo o que vc me falou do problema. É esse…

Cada botão possui uma ação. Que deve ser…
Pegar o texto existente no editText e concatenar mais o caracter ja existente.

Dai o resto é susse. Tem que análisar sua lógica pra ver.

Abraços

Marcilhovisck

A lógica entendi + ou - só não conseguir implementar em código :frowning:
Por exemplo, eu tenho 2 campos para digitar o valor e um terceiro q é o campo resultado,
não sei como fazer o evento de início para o botão 0, se conseguir fazer esse, vai ser
como vc falou, susse hehe
Mas já agradeço a atenção.

FabioNoth

Brother,
como esta o pé do seu projeto.
Olhei um pouco do seu código fonte e não consegui entender.

Mais deixa eu tentar te ajudar…
O que vc precisa saber é que cada botão que vc desenha. Tem um ação específica.
Depende o tipo da calculadora que for feita a lógica precisa ser trocada.

No meu caso não implementei um teclado. Só implementei os edit text por isso ficou simples.

Caso queira implementar um teclado é bom assistir atentamente todas as vídeo aulas. E buscar entender um pouco de lógica.

Talvez assim vc consiga compreender…
Mais fique a vontade para deixar suas dúvidas aqui.

Abraços…

Criado 27 de fevereiro de 2012
Ultima resposta 22 de ago. de 2012
Respostas 21
Participantes 6