GridView.getItemAtPosition始终为null(但列表显示项目)

时间:2015-05-11 17:23:39

标签: java android gridview android-arrayadapter onitemclicklistener

我有一个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.但是,它表示该项目为空(这对我没有意义,因为它在手机上显示得很好。)

你能告诉我这里我缺少的东西吗?

1 个答案:

答案 0 :(得分:2)

主要原因通常是因为您的getItem版本返回null。 getItem应该在项目数据集中返回一个位置,AdapterView.getItemAtPosition(...)在内部调用adapter.getItem(position)

请摆脱这个演员:ImageView image = (ImageView) (parent.getItemAtPosition(position));