ICS Spinner ("desplegable" en lugar de diálogo) en versiones anteriores de Android

Estoy tratando de imitar la nueva versión Ice Cream Sandwhich de la ruleta, donde se parece más a una lista desplegable en lugar de un diálogo emergente. Vea este enlace para tener una idea de lo que estoy hablando. He leído algunas publicaciones que dicen usar ActionBarSherlock para obtener el efecto deseado. Sin embargo, esto se crea para su uso en la barra de acción sólo, así que, ¿cómo puedo tomar el ICS Spinner fuera de la barra de acción?

Hay una respuesta bastante buena aquí, sin embargo, me siento como esto es un poco excesivo? hay una manera mas facil?

En primer lugar, he hecho referencia a este enlace a si debo o no responder a mi propia pregunta. Me pareció que esto puede ser muy útil para alguien que se enfrenta a un problema similar, así que me disculpo si esto no es una etiqueta adecuada para este sitio web (para responder a su propia pregunta).

Ahora, he tropezado alrededor de tratar de encontrar una solución para este problema y con el ensayo y error he tenido éxito. Por lo tanto, una vez que haya descargado ActionBarSherlock SDK y configurado en su proyecto, cree su diseño que incorporará el hilador:

<com.actionbarsherlock.internal.widget.IcsSpinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/title" android:layout_margin="10sp" android:layout_centerHorizontal="true" android:textSize="18sp" /> 

El código anterior utilizará la versión ICS de la hiladora que se encuentra en la biblioteca ActionBarSherlock. A continuación, en su actividad declarar e instanciar (utilizando casting) el objeto spinner. Pero tenga en cuenta que no utiliza la clase Spinner normal, utiliza la clase IcsSpinner que se encuentra en la biblioteca ActionBarSherlock:

 IcsSpinner spinner = (IcsSpinner)findViewById(R.id.spinner); 

Ahora, usted crea un adaptador como lo haría para el Spinner normal, así:

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item, elements); spinner.setAdapter(adapter); 

Por último, debe configurar el onItemSelectedListener . La única diferencia principal aquí es que usted utiliza IcsAdapterView.OnItemSelectedListener algo que apenas OnItemSelectedListener :

 spinner.setOnItemSelectedListener(new IcsAdapterView.OnItemSelectedListener(){ @Override public void onItemSelected(IcsAdapterView<?> parent, View view, int position, long id){ } @Override public void onNothingSelected(IcsAdapterView<?> parent){ } }); 

Y eso es. Realmente no es muy diferente, entonces sólo con el objeto spinner. Tan fácil como es, me tomó un tiempo para averiguar, así que, espero que esto sea útil para alguien.

Ah, sí, y no te olvides de usar un tema de ActionBarSherlock, como así (en el manifiesto):

 android:theme="@style/Theme.Sherlock" 
  • Android ViewPropertyAnimator no se escala al mismo tiempo
  • Android creando cadena de animación ViewPropertyAnimator
  • Uso de dos diseños diferentes para elementos secundarios en ExpandableListView
  • Arrastrar y soltar iconos a la pantalla de inicio
  • ¿Dónde desasignar correctamente el mapa de bits en Android View?
  • Cómo eliminar el espacio específico entre el padre y el niño en un ExpandableListView
  • Edición de Edición personalizada de Android y NextFocusDown
  • ¿Cómo puedo forzar un sitio a escala para fijar para móviles (Iphone android ..)
  • ¿Cómo se basan las coordenadas de un Android onTouchEvent MotionEvent?
  • Escala de diseño relativo personalizado?
  • La superficie de la cámara Android se cambió constantemente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.