Inicio » Curso de Android

Curso de Android

Capítulo 26 ➜ Calculadora

Desarrollo de una calculadora en Android con JAVA Curso Android desde cero

Programación de una calculadora para entender y reforzar los conceptos acerca del desarrollo de aplicación móvil para Android usando Android Studio. Descarga del código fuente.

Programación de una calculadora para entender y reforzar los conceptos acerca del desarrollo de aplicación móviles para el SO Android usando Android Studio

Código Java de una Calculadora en Android

Se trata de una calculadora sencilla de implementar con Java en Android Studio  donde:

  1. Creamos el proyecto Android desde cero
  2. Creamos 3 actividades o pantallas 
    1. MainActivity.- Lanza la aplicación
    2. CalculadoraActivity.- Recoge los datos con los diferentes widgets como EditText, RadioButtons y Button
    3. ResultadoActivity.- Se recoge las variables y se procesa el tipo de operación matemática, finalmente mostramos los resultados.

Parte del código del proyecto lo vemos a continuación:

1.- Pantalla Inicial MainActivity

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnEnter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ENTRAR"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Lógica en JAVA

package codea.app.calculadora;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

    Button btnEnter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);

        btnEnter = findViewById(R.id.btnEnter);

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });

        btnEnter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getApplicationContext(),CalculadoraActivity.class);
                startActivity(i);
                finish();
            }
        });
    }
}

2.- Pantalla Calculadora

Código completo del proyecto Calculadora en el Curso 

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_gravity="center"
    tools:context=".CalculadoraActivity">
    <androidx.cardview.widget.CardView
        android:layout_margin="50dp"
        app:contentPadding="20dp"
        app:cardElevation="10dp"
        android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <EditText
                android:id="@+id/numero1"
                android:hint="Número 1:"
                android:textSize="30dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
            <EditText
                android:id="@+id/numero2"
                android:hint="Número 2:"
                android:textSize="30dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

            <RadioGroup
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <RadioButton
                    android:id="@+id/opSuma"
                    android:text="SUMAR"
                    android:textSize="30dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
                <RadioButton
                    android:id="@+id/opResta"
                    android:text="RESTA"
                    android:textSize="30dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
                <RadioButton
                    android:id="@+id/opMulti"
                    android:text="MULTIPLICAR"
                    android:textSize="30dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
                <RadioButton
                    android:id="@+id/opDivision"
                    android:text="DIVISIÓN"
                    android:textSize="30dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
            </RadioGroup>

            <Button
                android:id="@+id/btnCalcular"
                android:text="CALCULAR"
                android:textSize="30dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
        </LinearLayout>
    </androidx.cardview.widget.CardView>

</androidx.appcompat.widget.LinearLayoutCompat>
 

Código Java

package codea.app.calculadora;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class CalculadoraActivity extends AppCompatActivity {

    EditText n1,n2;
    RadioButton opSuma,opResta,opMulti, opDivison;
    Button btnCalcular;
    String operacion = "";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_calculadora);

        n1 = findViewById(R.id.numero1);
        n2 = findViewById(R.id.numero2);

        opSuma = findViewById(R.id.opSuma);
        opResta = findViewById(R.id.opResta);
        opMulti = findViewById(R.id.opMulti);
        opDivison = findViewById(R.id.opDivision);

        btnCalcular = findViewById(R.id.btnCalcular);

        btnCalcular.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (n1.getText().toString().length()<1){
                    Toast.makeText(getApplicationContext(),"ingrese un valor en número 1:",Toast.LENGTH_LONG).show();
                }else if (n2.getText().toString().length()<1){
                    Toast.makeText(getApplicationContext(),"ingrese un valor en número 1:",Toast.LENGTH_LONG).show();
                }else{
                    // llenos
                    if(opSuma.isChecked())
                        operacion = "Suma";
                    if(opResta.isChecked())
                        operacion = "Resta";
                    if(opMulti.isChecked())
                        operacion = "Multiplicación";
                    if(opDivison.isChecked())
                        operacion = "División";

                    Intent i= new Intent(getApplicationContext(),ResultadoActivity.class);
                    i.putExtra("numero1",n1.getText().toString());
                    i.putExtra("numero2",n2.getText().toString());
                    i.putExtra("operacion",operacion);
                    startActivity(i);
                    finish();
                }
            }
        });
    }
}

...

3ra Activity ResultadoActivity 

Esta actividad procesa y muestra los resultados de la operación matemática.

 

El código fuente del proyecto Android completo se encuentra en el curso en mención.


8765 visitas


{ Curso de Android }


Compartir link con tus amigos

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024