Inicio InformáticaAndroid Calculadora en Java utilizando control visual Spinner
AndroidLogo

Calculadora en Java utilizando control visual Spinner

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

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

2 Comentarios

Estevan 21 agosto, 2016 - 1:12 PM

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

Responder
sapoclay 21 agosto, 2016 - 10:57 PM

De nada. Gracias por la visita. Salu2.

Responder

Deja tu comentario

* Al utilizar este formulario, acepta que este sitio web almacene y maneje sus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.