Registro del Estudiante

Por favor, ingrese sus datos personales para iniciar la práctica guiada.

Alumno:

Grupo:

Progreso de la Práctica

0%

0 de 4 apartados completados

Apartados

Paso 1: Crear el proyecto en Android Studio

Vamos a construir una calculadora paso a paso utilizando el enfoque profesional clásico: Java para la lógica y XML para la interfaz gráfica.

  1. Abra Android Studio en su equipo.
  2. Seleccione New Project (Nuevo Proyecto).
  3. Elija la plantilla Empty Views Activity (¡Ojo! Asegúrese de que tenga la palabra "Views", esto garantiza que usaremos XML). Dé clic en Next.
  4. Configure los siguientes datos exactos:
    • Name: CalculadoraBasica
    • Language: Seleccione Java.
    • Minimum SDK: Puede dejar el que viene por defecto (por ejemplo, API 24).
  5. Dé clic en Finish y espere un par de minutos a que Gradle configure el proyecto de manera inicial.
Configuración de Nuevo Proyecto en Android Studio

Paso 2: Diseñar la Interfaz Gráfica (El código XML)

Android Studio divide el proyecto en dos partes principales. La pantalla visual se encuentra en la siguiente ruta:

app > res > layout > activity_main.xml

  1. Busque ese archivo en el árbol de carpetas de la izquierda y ábralo.
  2. En la esquina superior derecha del editor, cambie la vista a Code (Código) para ver las etiquetas de texto.
  3. Borre todo lo que aparezca ahí de forma nativa y pegue el siguiente código optimizado:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="24dp"
    android:gravity="center_vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mi Calculadora"
        android:textSize="28sp"
        android:textStyle="bold"
        android:layout_gravity="center"
        android:layout_marginBottom="32dp"/>

    <EditText
        android:id="@+id/txtNumero1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Primer número"
        android:inputType="numberDecimal"
        android:layout_marginBottom="16dp"/>

    <EditText
        android:id="@+id/txtNumero2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Segundo número"
        android:inputType="numberDecimal"
        android:layout_marginBottom="24dp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginBottom="32dp">

        <Button android:id="@+id/btnSuma" android:layout_width="60dp" android:layout_height="wrap_content" android:text="+" android:layout_margin="4dp"/>
        <Button android:id="@+id/btnResta" android:layout_width="60dp" android:layout_height="wrap_content" android:text="-" android:layout_margin="4dp"/>
        <Button android:id="@+id/btnMulti" android:layout_width="60dp" android:layout_height="wrap_content" android:text="x" android:layout_margin="4dp"/>
        <Button android:id="@+id/btnDiv" android:layout_width="60dp" android:layout_height="wrap_content" android:text="/" android:layout_margin="4dp"/>
    </LinearLayout>

    <TextView
        android:id="@+id/lblResultado"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Resultado: 0"
        android:textSize="22sp"
        android:textStyle="bold"
        android:layout_gravity="center"
        android:layout_marginBottom="24dp"/>

    <Button
        android:id="@+id/btnLimpiar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Limpiar Pantalla"
        android:backgroundTint="#757575"
        android:layout_gravity="center"/>

</LinearLayout>
Diseño de Interfaz XML en Vista de Código

Paso 3: Programar el Comportamiento (El código Java)

Ahora le daremos vida y lógica funcional a esos componentes gráficos. El archivo controlador se encuentra en la ruta:

app > java > com.example.calculadorabasica > MainActivity.java

  1. Abra el archivo MainActivity.java.
  2. Reemplace completamente su contenido por el siguiente código modular estructurado:
package com.example.calculadorabasica;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    // 1. Declaración de los componentes de la interfaz
    private EditText txtNumero1, txtNumero2;
    private TextView lblResultado;
    private Button btnSuma, btnResta, btnMulti, btnDiv, btnLimpiar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 2. Vinculación de los objetos Java con los componentes XML (Vistas)
        txtNumero1 = findViewById(R.id.txtNumero1);
        txtNumero2 = findViewById(R.id.txtNumero2);
        lblResultado = findViewById(R.id.lblResultado);
        btnSuma = findViewById(R.id.btnSuma);
        btnResta = findViewById(R.id.btnResta);
        btnMulti = findViewById(R.id.btnMulti);
        btnDiv = findViewById(R.id.btnDiv);
        btnLimpiar = findViewById(R.id.btnLimpiar);

        // 3. Asignación de oyentes de eventos (Listeners) para cada botón
        btnSuma.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { calcular('+'); }
        });
        btnResta.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { calcular('-'); }
        });
        btnMulti.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { calcular('*'); }
        });
        btnDiv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { calcular('/'); }
        });
        btnLimpiar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { limpiar(); }
        });
    }

    // 4. Método modular para procesar las operaciones matemáticas
    private void calcular(char operacion) {
        String n1Str = txtNumero1.getText().toString();
        String n2Str = txtNumero2.getText().toString();
        
        // Validación pedagógica básica: verificar campos vacíos
        if (n1Str.isEmpty() || n2Str.isEmpty()) {
            lblResultado.setText("Error: Introduce ambos números");
            return;
        }

        double num1 = Double.parseDouble(n1Str);
        double num2 = Double.parseDouble(n2Str);
        double resultado = 0;

        switch (operacion) {
            case '+':
                resultado = num1 + num2;
                break;
            case '-':
                resultado = num1 - num2;
                break;
            case '*':
                resultado = num1 * num2;
                break;
            case '/':
                // Control preventivo de división por cero
                if (num2 == 0) {
                    lblResultado.setText("Error: No se puede dividir entre 0");
                    return;
                } else {
                    resultado = num1 / num2;
                }
                break;
        }
        lblResultado.setText("Resultado: " + resultado);
    }

    // 5. Método para restaurar el estado inicial de la app
    private void limpiar() {
        txtNumero1.setText("");
        txtNumero2.setText("");
        lblResultado.setText("Resultado: 0");
    }
}
Implementación del Controlador en MainActivity.java

Paso 4: Probar la aplicación

Para evitar sobrecargar los recursos de procesamiento simulando un dispositivo virtual, realizaremos el despliegue físico directo en un teléfono celular:

  1. Conecte su teléfono Android a su equipo utilizando un cable USB compatible. Asegúrese de tener activa la Depuración por USB en las opciones de desarrollador de su terminal.
  2. En la barra superior de herramientas de Android Studio, ubique el menú desplegable al lado del icono verde de "Play". Ahí verá reflejado el modelo de su teléfono celular.
  3. Dé clic en el botón verde de Run ('app') o presione el atajo de teclado correspondiente de ejecución.
  4. El entorno de Gradle compilará los manifiestos, empaquetará los binarios e instalará automáticamente la aplicación en su teléfono celular en cuestión de segundos.

Esta práctica implementa de forma didáctica conceptos clave del paradigma orientado a objetos (POO), el control preventivo de excepciones aritméticas y la clara división estructural de capas arquitectónicas (Vista/Controlador).

Ejecución e instalación de la APK en hardware real

Tus Notas de Desarrollo

Registre apuntes, errores corregidos, o dudas para la entrega de su evidencia técnica.

© Copyright EduCer, Dr. Niels Henryk Aranda Cuevas. Todos los derechos reservados.