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

时间:2011-09-30 12:38:10

标签: 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();
            }
        });

谢谢!

2 个答案:

答案 0 :(得分: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

            }
        });

答案 1 :(得分:2)

使用此

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

        }
    }); 
适配器类中的

添加此函数

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