view.getId()在OnItemClickListener中返回错误的id

pla*_*ast 5 android view onitemclicklistener

在我的应用程序中,我有一个图库,里面有一些图像.当用户选择图像时,我想以某种方式检索所选图像的id.

getId()返回的int是-1.为什么我没有获得所选图像的系统ID?

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

谢谢!

Ven*_*nky 6

使用OnItemSelectedListener而不是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

            }
        });
Run Code Online (Sandbox Code Playgroud)


Raj*_*ddy 2

用这个

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

        }
    }); 
Run Code Online (Sandbox Code Playgroud)

在适配器类中添加此功能

public long getItemId(int position) {
        return imagearray[position];
    }
Run Code Online (Sandbox Code Playgroud)