2011-09-30 10 views
5

En mi aplicación tengo una galería con algunas imágenes. Cuando el usuario selecciona una imagen, quiero recuperar de algún modo la identificación de la imagen seleccionada.view.getId() devuelve id. Incorrecta en OnItemClickListener

El int que devuelve getId() es -1. ¿Por qué no obtengo la identificación del sistema para la imagen que se seleccionó?

gallery.setOnItemClickListener(new OnItemClickListener() { 
      @SuppressWarnings("rawtypes") 
      @Override 
      public void onItemClick(AdapterView parent, View v, int position, long id) { 
       int imageId = v.getId(); 
      } 
     }); 

¡Gracias!

+0

hizo u marcada con OnItemSelectedListener? – Venky

Respuesta

2

uso de este

public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     int imageId = ((ImageAdapter)parent.getAdapter()).mygetItemId(position); 

     } 
    }); 

en clase adaptador de añadir esta función

public long getItemId(int position) { 
     return imagearray[position]; 
    } 
+0

¡Gracias, esto funcionó a la perfección! =) – plast

6

Uso OnItemSelectedListener en lugar de OnItemClickListener

gallery.setOnItemSelectedListener(new OnItemSelectedListener(){ 

      @Override 
      public void onItemSelected(AdapterView<?> parent, View view,int pos, long id){ 
       // TODO Auto-generated method stub 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

      } 
     }); 
Cuestiones relacionadas