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

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.