我有一个GridView对象。它显示用户库中的照片。这是有效的,列表可以在屏幕上滚动。
但是每当我尝试获取被点击的项目时,我都会为空。
_gridView.setAdapter(new ImageAdapter(getActivity()));
_gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ImageView image = (ImageView) (parent.getItemAtPosition(position));
System.out.println("Getting pos " + position + " and obj is " + parent.getItemAtPosition(position));
}
});
它打印出的位置始终是正确的。如果我点击第一个项目,它告诉我位置为0.但是,它表示该项目为空(这对我没有意义,因为它在手机上显示得很好。)
你能告诉我这里我缺少的东西吗?
答案 0 :(得分:2)
主要原因通常是因为您的getItem
版本返回null。 getItem
应该在项目数据集中返回一个位置,AdapterView.getItemAtPosition(...)
在内部调用adapter.getItem(position)
。
请摆脱这个演员:ImageView image = (ImageView) (parent.getItemAtPosition(position));