Android crear una ruleta con elementos que tienen un valor oculto y mostrar algún texto?

Estoy seguro de esto se le pregunta mucho y he encontrado algunas preguntas aquí similares, pero ninguno realmente consiguió la caída de la moneda para mí. Espero que alguien me ayude.

Lo que quiero hacer es presentar al usuario con un menú desplegable (spinner) con una lista de sabores Vanilla, Chocolate, Fresa.

Cuando el usuario seleccionó el sabor de su elección el deseo que el valor de la fresa que es 10 a ser devuelto.

Strawberry = 10 Chocolate = 20 Vanilla = 30 

Vengo de un fondo de vb.net por lo que encontrar este increíblemente difícil de trabajar con el hecho de que necesito arrayadapters y cosas para hacerlo?

¿Podría alguien simplificar las cosas para mí y tal vez compartir algún código?

Creo que este post le ayudará Android: ¿Cómo vincular a spinner a la lista de objetos personalizados?

Este autor de la pregunta tiene el mismo requisito que usted

Puedes probar esto

 ArrayAdapter<String> SpinerAdapter; String[] arrayItems = {"Strawberry","Chocolate","Vanilla"}; final int[] actualValues={10,20,30}; SpinerAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, arrayItems); spinner.setAdapter(SpinerAdapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { int thePrice=actualValues[ arg2]; } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); 

Aquí está el código:

  TextView textView=(TextView) findViewById(R.id.textView1); Spinner spinner=(Spinner) findViewById(R.id.spinner1); spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item,quantity)); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if(arg2==0){ textView.setText("Strawberry = 10"); }else if(arg2==1){ textView.setText("Chocolate = 20"); }else if(arg2==2){ textView.setText("Vanilla = 30"); } } public void onNothingSelected(AdapterView<?> arg0) { } }); String[] quantity={"Strawberry","Chocolate","Vanilla"}; 

Y archivo xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

Usa Enums para envolver todo perfectamente.

El uso de Enums mantiene las cosas limpias y le proporciona una interfaz orientada a objetos sin tener que persistir los datos. Y por el aspecto de la misma, que está utilizando valores constantes para cada uno de sus "sabores" (por ejemplo, Strawberry = 10 ).

Por lo tanto, comience por crear un "paquete" o directorio llamado enums . Mantendremos todos sus Enums ahí.

A continuación, crear un nuevo archivo en el llamado Flavour :

Enums / Flavour.java

 public enum Flavour { STRAWBERRY("Strawberry", 10), CHOCOLATE("Chocolate", 20), VANILLA("Vanilla", 30); private String displayString; private int value; private Flavour ( String displayString, int value) { this.displayString = displayString; this.value = value; } @Override public String toString() { return displayString; } public String displayString() { return displayString; } public String value() { return value; } public static Flavour fromDisplayString( String displayString) { if ( displayString != null ) { for ( Flavour flavour : Flavour.values() ) { if ( displayString.equalsIgnoreCase( flavour.displayString ) ) { return flavour; } } } throw new IllegalArgumentException("No Flavour with display string " + displayString + " found"); } public static Flavour fromValue( int value) { if (value != null) { for (Flavour flavour : Flavour.values()) { if (value.equals(flavour.value)) { return flavour; } } } new IllegalArgumentException("No Flavour with value " + value + " found"); } } 

Voy a dejar el resto de las cosas adaptador a usted para hacer, pero las piezas clave son las siguientes:

  • Utilice Flavour.values() para obtener la matriz de Flavors para su Spinner Adapter.

  • El toString() llamará automáticamente cuando el Spinner se está poblando por lo que su cadena de visualización (o lo que regrese en ese método) será lo que se muestra.

  • Al guardar el valor, puede utilizar esto:

     ( (Flavour) spinner.getSelectedItem() ).value(); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.