Inicio InformáticaAndroid Aplicación de sumas y restas en Android

Aplicación de sumas y restas en Android

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

Me han preguntado el otro día como realizar el control de datos introducidos en una APP para Android. He de reconocer que mi fuerte son las aplicaciones web, pero creo que en el ejemplo que a continuación voy a mostrar quedará claro como realizar estos controles ( de una manera básica ). El objetivo que busco lo realizaré utilizando CheckBox para seleccionar las operaciones en esta pequeña calculadora de sumas y restas que vamos a realizar.

Al realizar la carga de dos números en controles de tipo EditText («Number») mostraremos un mensaje que solicite la carga de los valores. También dispondremos de dos controles de tipo CheckBox para seleccionar si queremos sumar y/o restar dichos valores (pudiendo realizar las dos operaciones a la vez). Finalmente mediante un control de tipo Button efectuamos la operación respectiva. El o los resultados obtenidos serán mostrados en un TextView («Medium Text»).

Calculadora para sumas y restas

En caso de que no se seleccione ninguna de las operaciones mostraremos un mensaje en el lugar donde debería mostrarse el resultado avisando de ello. También mostraremos un mensaje en el mismo campo en el caso de que el primer o segundo número queden sin ser cubiertos.

checkbox

Cuando terminemos de montar la estructura, hay que recordar el no olvidarse inicializar la propiedad onClick del objeto button con el valor «operar» (es el nombre del método a ejecutarse cuando se presione el botón y lo implementa la clase que hacemos).

Activicty main.xml

Para los que no se enteren con el «creador de interfaces» que nos proporciona Android Studio, voy a dejar a continuación el código xml del activity_mail.xml:

  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="ar.com.entreunosyceros.sumaryrestas.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Escribe el primer valor"
        android:id="@+id/tv1"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/et1"
        android:layout_below="@+id/tv1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Escribe el segundo valor"
        android:id="@+id/tv2"
        android:layout_below="@+id/et1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/et2"
        android:layout_below="@+id/tv2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sumar"
        android:id="@+id/checkBox"
        android:layout_below="@+id/et2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Restar"
        android:id="@+id/checkBox2"
        android:layout_below="@+id/checkBox"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Operar"
        android:id="@+id/button"
        android:layout_below="@+id/checkBox2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:onClick="operar" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Aquí se verá el resultado"
        android:id="@+id/tv3"
        android:layout_below="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/button"
        android:layout_alignRight="@+id/tv2"
        android:layout_alignEnd="@+id/tv2"></GridLayout>
</RelativeLayout>

Y bueno, con esto habremos creado la estructura de la APP que estamos desarrollando.

MainActivity.Java

Ahora es el turno del turrón del asunto, el MainActivity.java. En el se desarrollarán las operaciones y el control de errores de nuestra aplicación. El código sería el siguiente:

package ar.com.entreunosyceros.sumasyrestas;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
    //definición
    private EditText et1,et2;
    private TextView tv3;
    //Definimos dos objetos de la clase CheckBox como atributos de la clase
    private CheckBox checkBox1,checkBox2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //obtener los números
        et1=(EditText)findViewById(R.id.et1);
        et2=(EditText)findViewById(R.id.et2);
        //resultado o mensajes
        tv3=(TextView)findViewById(R.id.tv3);
        //En el método onCreate los inicializamos con los objetos definidos en el archivo XML
        checkBox1=(CheckBox)findViewById(R.id.checkBox);
        checkBox2=(CheckBox)findViewById(R.id.checkBox2);
    }

    //Este método se ejecutará cuando se presione el botón
    public void operar(View view) {
        String valor1=et1.getText().toString();
        String valor2=et2.getText().toString();
        //variable para mostrar el resultado
        String resu = "";
        //comprobamos si alguno de los números están vacíos
        if ( valor1.isEmpty() || valor2.isEmpty()){
            resu = "Error. Alguno de los números están vacíos";
            tv3.setText(resu);
        }else {
            //pasamos los números de String a Integer
            int nro1 = Integer.parseInt(valor1);
            int nro2 = Integer.parseInt(valor2);

            try {
                //comprobamos que se ha seleccionado alguna de las operaciones a realizar
                if (checkBox1.isChecked() == false &amp;&amp; checkBox2.isChecked() == false) {
                    resu = "No se ha seleccionado ninguna operación";
                }else {
                    if (checkBox1.isChecked() == true) {
                        int suma = nro1 + nro2;
                        resu = "La suma de " + nro1 + " y de " + nro2 + " es: " + suma + "\n";
                    }
                    if (checkBox2.isChecked() == true) {
                        int resta = nro1 - nro2;
                        resu = resu + "La resta es: " + resta;
                    }
                }
                //mostramos el resultado
                tv3.setText(resu);
            } catch (Exception e) {
                //en caso de error se muestra la exception
                System.out.println("Error!! Exception: " + e);
            }
        }
    }
}

Probando la calculadora

Cuando ejecutamos el programa en el emulador que nos proporciona Android Studio, podemos ver algo como lo que sigue:

Sumas y restas

Evidentemente los colores y esas cosas serán al gusto de cada uno. En caso de que no se seleccione ninguna operación a realizar, nuestra APP nos mostrará un mensaje como el que se ve en la siguiente captura.

sumas y restas errores1

Y como ya he comentado antes, en caso de no cubrir alguno de los números la aplicación nos mostrará también un mensaje avisándonos de ello, como se muestra en la próxima captura.

errores sumas y restas

Como se puede ver en las capturas, y en caso de que alguien quiera compilar la aplicación en local, esta funciona perfectamente. Próximamente más …

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

2 Comentarios

Adalgiza 6 septiembre, 2019 - 3:24 AM

Hola
Necesito el código de la calculadora completa gracias…

Respuesta
sapoclay 6 septiembre, 2019 - 4:03 PM

Hola. Juraría que con el código que aparece en el post, la calculadora funciona. Pero asegúrate de construir adecuadamente la estructura del proyecto.
Si a pesar de utilizar el código (tal cual) y tener correcta la estructura del proyecto no consigues que funcione, envíame los errores por correo y vemos si falta algo en el artículo o en tu proyecto.
Salu2 y gracias por el comentario.

Respuesta
Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.