Pergunta

In my app i have a Gallery with some images in it. When the user selects an image I want to somehow retrieve the id of the selected image.

The int that is returned by getId() is -1. Why am I not getting the system id for the image that was selected?

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

Thanks!

Foi útil?

Solução

use this

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

        }
    }); 

in adapter class add this function

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

Outras dicas

Use OnItemSelectedListener instead of 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

            }
        });
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top