在我的应用程序中,我有一个包含一些图像的图库。当用户选择图像时,我想以某种方式检索所选图像的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();
}
});
谢谢!
答案 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];
}