سؤال

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!

هل كانت مفيدة؟

المحلول

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];
    }

نصائح أخرى

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

            }
        });
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top