2011-04-05 21 views
5

Tengo un pequeño problema con un spinner.android spinner performClick onItemSelected

Creo un Spinner el usuario hace clic en un botón. El Spinner se muestra como debería ser, pero cuando se debe llamar al onItemSelected, no pasa nada.

Este es el código

public void setUpSpinner(){ 
    spinner = new Spinner(this); 
    CustomArrayAdapter<String> adapter = new CustomArrayAdapter<String>(this,  android.R.layout.simple_spinner_item, getAsStrings()); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(this); 
} 

public void onClick(View view) {  
    spinner.performClick(); 
} 

public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {   
    String getName = (String) spinner.getSelectedItem(); 
    getListFromName(getName); 
} 

Cualquiera sabe lo que está mal aquí?

Gracias chicos.

Respuesta

16

resuelto el problema mediante la adición de un Spinner en mi xml con la altura y la anchura conjunto a cero.

+0

Gracias .... Me quedé con el mismo problema ........ – hemu

+0

Qué gran solución funciona bien – Santosh

+0

@Bastaix Podría decirnos cómo declara el Spinner. –

0

Esto se parece bastante a la turorial, así que refiérase a eso. Consulte a continuación:

No veo esto, pero ¿la clase principal implementa OnItemSelectedListener? Además, querrá crear una instancia del Spinner dentro de onCreate() dentro del cuerpo principal de la clase.

Esta línea debe estar dentro de onCreate();

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
+0

La ruleta se instancia en el onCreate donde el 'setUpSpinner()' se llama, y ​​la clase implementa onItemSelectedListener. – Bastaix

0

¿por qué tiene spinner = new Spinner(this) en la configuración?

seguro que ya tienen un Spinner en el XML de su diseño, a continuación, sólo tiene que hacer spinner = (Spinner) findViewById(R.id.WHATEVER_THE_ID_IS_IN_THE_XML); por lo que no necesita un new P. S.

esto es como defino una ruleta en un diseño XML

<Spinner 
android:id="@+id/SPINNER_ID" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:gravity="center_horizontal" /> 
Cuestiones relacionadas