android适配器notifydatasetchanged无法正常工作

时间:2013-12-22 17:53:12

标签: android adapter

我在notifyDataSetChanged之后没有加载图片时遇到问题。总体来说,我有一个启动类,我开始从网上加载图像并将它们保存在设备上。适配器使用保存在设备上的图像。因此,如果我在保存图像之前打开我的列表视图,我只看到我的占位符。然后,如果我返回你的应用程序然后当然imageas加载因为他们已经保存。

创建适配器

adapter = new GridAdapter(getActivity(), grid, 6);
    grid.setAdapter(adapter);

这里我保存图像并通知适配器。

try {
                FileOutputStream fos = context.openFileOutput(String.valueOf(id)+".jpg", Context.MODE_PRIVATE);
                fos.write(imageBytes);
                fos.close();
                try {
                    GridFragment.adapter.notifyDataSetChanged();    
                } catch (Exception e) {
                    // TODO: handle exception
                }

。 在适配器中我使用图像加载库,但只是它只是从设备设置图像(而不是异步等)。

        iLoader.displayImage("file:///"+mContext.getFileStreamPath
                (String.valueOf(position)).toString()+".jpg", holder.imageView, DataHolder.options, this);

1 个答案:

答案 0 :(得分:0)

通常对于AdapternotifyDataSetChanged仅在您使用适配器上的添加,插入,移除和清除功能时才有效。

例如,如果您已经在adapter中添加了对图像的引用(这似乎很可能,因为文件已存在并且您正在向其中写入新数据),那么如果图像的任何属性发生更改(在你的情况下,大小),notifyDataSetChanged不会做任何事情。它只能检测添加,删除。

(您还没有添加GridAdapter实施,所以我能想到的就是这样)