2012-06-03 7 views
8

Tengo una ruleta con tres elementos y uso un recurso de matriz de cadena XML para alimentarlo. Cuando abre una actividad, la ruleta normalmente muestra el primer elemento que está en la lista de la matriz. Me gustaría cambiar eso y mostrar el texto "Seleccionar uno" en la ruleta, antes de seleccionar un elemento.Establecer el texto de la ruleta antes de seleccionar el elemento

¿Cómo puedo hacer eso?

+0

Posible duplicado de [Cómo hacer un Android Spinner con ingenio h texto inicial "Seleccionar uno"] (http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one) – blahdiblah

Respuesta

9

usted puede hacer que una de dos maneras.

1) Agregue "Seleccionar uno" como primer elemento en su xml y codifique su oyente para ignorar eso como una selección.

2) Crear un adaptador personalizado para insertarlo en la primera línea,

EDITAR

En sus recursos

<string-array name="listarray"> 
    <item>Select One</item> 
    <item>Item One</item> 
    <item>Item Two</item> 
    <item>Item Three</item> 
</string-array> 

En su onItemSelected Oyente:

spinnername.setOnItemSelectedListener(new OnItemSelectedListener() { 
@Override 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     if (pos == 0) { 
     }else { 
      // Your code to process the selection 
     } 
    } 
}); 
+0

¿Hay alguna manera de insertarlo desde un recurso de cadena? – JohnD

+0

Sí, solo agréguela como la primera de las entradas en su recurso de matriz. Edité mi respuesta para dar un ejemplo. – Barak

+0

¿Resolvió esto su problema? – Barak

1

Para establecer un texto predeterminado para la ruleta, debe utilizar android:[email protected]/SelectOne para su ruleta Donde SelectOne se define en su string.xml.

Ejemplo:

<Spinner android:id="@+id/spinnerTest" 
android:layout_marginLeft="50px" 
android:layout_width="fill_parent"     
android:drawSelectorOnTop="true" 
android:layout_marginTop="5dip" 
android:prompt="@string/SelectOne" 
android:layout_marginRight="30px" 
android:layout_height="35px" 
/> 
+0

No es lo que el OP quería. Él lo quiere en la ruleta, no como el encabezado de la misma. – Barak

+0

Sí, eso es correcto. – JohnD

+1

mira esta publicación, le da miltitude manera de hacer lo que quieras. http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one – 113408

Cuestiones relacionadas