Usar Control Spinner

El objetivo de este es practicar con el control visual Spinner y hacer un ejercicio basico para dicho ejemplo.
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.

Problema:

Realizar la carga de dos números en controles de tipo EditText. Mostrar un mensaje que solicite la carga de los valores. Disponer 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.
Lo nuevo en este problema es la inserción de un control de tipo Spinner que se encuentra en la pestaña “Form Widgets”:

Definimos la propiedad id con el valor spOperacion.
En la siguiente imagen tenemos sus respectivos nombres. De cada herramienta a utilizar.
No olvidemos inicializar la propiedad OnClick del objeto button con el valor “Operarcion” (dicho nombre es el método que debemos implementar). Para esto debemos presiona el boton y a la izquiera agregar en el menu On Click “Operaciones”.
Código fuente:
El código fuente de la clase MaintActivity.java es:

package com.mfast.appspinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {

Spinner sp1;
EditText numero1;
EditText numero2;
TextView resultado;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
numero1=(EditText)findViewById(R.id.txtNum1);
numero2=(EditText)findViewById(R.id.txtNum2);
resultado=(TextView)findViewById(R.id.txtResultado);

sp1 = (Spinner) findViewById(R.id.spOperacion);
String []opciones={"sumar","restar","multiplicar","dividir"};
ArrayAdapter<string> adapter = new ArrayAdapter<string>(this,android.R.layout.simple_spinner_item, opciones);
sp1.setAdapter(adapter);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
//Este método se ejecutará cuando se presione el botón
public void Operaciones(View view) {
String valor1=numero1.getText().toString();
String valor2=numero2.getText().toString();
int nro1=Integer.parseInt(valor1);
int nro2=Integer.parseInt(valor2);
String selec=sp1.getSelectedItem().toString();
if (selec.equals("sumar")) {
int suma=nro1+nro2;
String resu=String.valueOf(suma);
resultado.setText(resu);
} else
if (selec.equals("restar")) {
int resta=nro1-nro2;
String resu=String.valueOf(resta);
resultado.setText(resu);
}
else
if (selec.equals("multiplicar")) {
int multi=nro1*nro2;
String resu=String.valueOf(multi);
resultado.setText(resu);

}
else
if (selec.equals("dividir")) {
int divi=nro1/nro2;
String resu=String.valueOf(divi);
resultado.setText(resu);
}
}

}

Definimos un objeto de la clase Spinner:
    private Spinner sp1;
En el método onCreate obtenemos la referencia al control visual declarado en el archivo XML:
        sp1=(Spinner)findViewById(R.id.spOperaciones);

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

Al constructor le pasamos como primer parámetro la referencia de nuestro Activity (this), el segundo parámetro indica el tipo de Spinner, pudiendo ser las constantes:
android.R.layout.simple_spinner_item
android.R.layout.simple_spinner_dropdown_item

El tercer parámetro es la referencia del vector que se mostrará:

Luego llamamos al método setAdapter de la clase Spinner pasando la referencia del objeto de la clase ArrayAdapter que acabamos de crear:

        sp1.setAdapter(adapter);


En el método Operaraciones que se ejecuta cuando presionamos el botón procedemos a extraer el contenido seleccionado del control Spinner:

String selec=sp1.getSelectedItem().toString();

Luego 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);
            resultado.setText(resu);
        } else
            if (selec.equals(“restar”)) {
                int resta=nro1-nro2;
                String resu=String.valueOf(resta);
                resultado.setText(resu);              
            }
            else
                if (selec.equals(“multiplicar”)) {
                    int multi=nro1*nro2;
                    String resu=String.valueOf(multi);
                    resultado.setText(resu);

                }
                else
                    if (selec.equals(“dividir”)) {
                        int divi=nro1/nro2;
                        String resu=String.valueOf(divi);
                        resultado.setText(resu);
                    }

El resultado seria el siguiente:

1+

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

WhatsApp chat