View.getId () returns invalid identifier in OnItemClickListener

In my application, I have a gallery with some images in it. When the user selects an image, I want to somehow get the identifier of the selected image.

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

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

Thank!

+5
source share
2 answers

use this

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

        }
    }); 

in the adapter class add this function

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

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

            }
        });
+6
source

All Articles