Inicio InformáticaAndroid Calculadora en Java utilizando control visual Spinner

Calculadora en Java utilizando control visual Spinner

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.
Control visual Spinner

En este ejercicio de ejemplo que vamos a completar un poco más el anterior ejercicio que aquí publiqué sobre sumas y restas en Android. El objetivo de este nuevo ejercicio es poner a funcionar una calculadora utilizando el control visual Spinner.

El control Spinner muestra una lista de String y nos permite seleccionar uno de ellos. Cuando se lo selecciona se abre y muestra todos sus elementos para permitir seleccionar uno de ellos. Es una manera diferente de seleccionar las operaciones a realizar con los números que indiquemos. En este ejercicio no podremos realizar más de una operación de cada vez.

En este ejercicio realizaremos la carga de dos números en controles de tipo EditText. Se mostrará un mensaje que solicite la carga de los valores al usuario. Dispondremos de un control de tipo Spinner que permita seleccionar si queremos sumar, restar, multiplicar o dividir dichos valores. Finalmente mediante un control de tipo Button efectuamos la operación respectiva. Mostramos el resultado en un TextView.

En caso de que no se añada ningún número en los campos, se mostrará un mensaje avisando de ello.

Para realizar este ejercicio la estructura del proyecto será la misma que utilizamos en la versión de sumas y restas en Android, por lo que solo voy a mostrar el contenido del MainActivity.java. En caso de necesitar el resto del código, podéis consultarlo en el siguiente enlace.

Calculadora en Java utilizando el control visual Spinner

package ar.com.entreunosyceros.calculadoraspinner;

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

public class MainActivity extends AppCompatActivity {
    //Definimos un objeto de la clase Spinner
    private Spinner spinner1;
    private EditText et1,et2;
    private TextView tv3;

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

        et1=(EditText)findViewById(R.id.et1);
        et2=(EditText)findViewById(R.id.et2);
        tv3=(TextView)findViewById(R.id.tv3);
        //En el método onCreate obtenemos la referencia al control visual declarado en el archivo XML
        spinner1 = (Spinner) findViewById(R.id.spinner);
        //Definimos un vector con la lista de String que mostrará el Spinner
        String []opciones={"sumar","restar","multiplicar","dividir"};
        //Definimos y creamos un objeto de la clase ArrayAdapter
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, opciones);
        //llamamos al método setAdapter de la clase Spinner pasando la referencia del objeto de la clase ArrayAdapter
        spinner1.setAdapter(adapter);
    }

    //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();

        if (valor1.isEmpty() || valor2.isEmpty()){
            String resu = "Error. Alguno de los números están vacíos";
            tv3.setText(resu);
        }else {

            int nro1 = Integer.parseInt(valor1);
            int nro2 = Integer.parseInt(valor2);
            //método operar que se ejecuta cuando presionamos el botón procedemos a
            //extraer el contenido seleccionado del control Spinner
            String selec = spinner1.getSelectedItem().toString();
            //mediante una serie de if anidados verificamos si debemos sumar, restar, multiplicar o dividir
            if (selec.equals("sumar")) {
                int suma = nro1 + nro2;
                String resu = String.valueOf(suma);
                tv3.setText(resu);
            } else if (selec.equals("restar")) {
                int resta = nro1 - nro2;
                String resu = String.valueOf(resta);
                tv3.setText(resu);
            } else if (selec.equals("multiplicar")) {
                int multi = nro1 * nro2;
                String resu = String.valueOf(multi);
                tv3.setText(resu);
            } else if (selec.equals("dividir")) {
                //hacemos un cast de los números a float para poder tener decimales en el resultado
                float divi = (float)nro1 / (float)nro2;
                String resu = String.valueOf(divi);
                tv3.setText(resu);
            }
        }
    }
}

También te puede interesar ...

Deja un comentario

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

2 Comentarios

Estevan 21 agosto, 2016 - 1:12 PM

Genial. Me ha venido muy bien para entender el funcionamiento del spinner. Gracias por compartir.

Respuesta
sapoclay 21 agosto, 2016 - 10:57 PM

De nada. Gracias por la visita. Salu2.

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.