Java 毕加索从手机加载图像时出错

Java 毕加索从手机加载图像时出错,java,android,android-fragments,android-gridview,picasso,Java,Android,Android Fragments,Android Gridview,Picasso,我有一个GridView,其中我放了一些用毕加索从手机上采集的图像,目前我只针对KitKat。我将Uri的ArrayList传递给适配器,一切正常。但我希望在活动被销毁后图像也留在这里,所以我在片段中使用: @Override public void onPause() { imagesUriSet = new HashSet<String>(); for(Uri i : imagesUri) imagesUriSet.add(i.toString()

我有一个GridView,其中我放了一些用毕加索从手机上采集的图像,目前我只针对KitKat。我将Uri的ArrayList传递给适配器,一切正常。但我希望在活动被销毁后图像也留在这里,所以我在片段中使用:

@Override
public void onPause() {
    imagesUriSet = new HashSet<String>();
    for(Uri i : imagesUri)
        imagesUriSet.add(i.toString());
    mSharedPreferences.edit().putStringSet("IMAGES",imagesUriSet).commit();
    super.onPause();
}
如果启动我的应用程序,我在SharedReferences中保存的图像将不会显示,而我会看到错误图像。但是如果我再次添加相同的图像,那么我也可以看到第一个。
我不知道发生了什么事。有什么问题吗?

您是否尝试进行日志记录。我会查看SharedReferences中写入和读取的内容,以查看它是否实际写入/读取了正确的值? 并尝试执行Log.I,查看在执行Uri URL=Uri data.getposition时是否读取了正确的URL;在getView方法中

我的最佳猜测是,它无法从SharedReferences设置/获取正确的数据

我目前也在使用毕加索在ListView中加载大量Facebook/Twitter/LinkedIn个人资料图片,虽然我没有将URL地址保存在SharedReferences中,但我将它们与其他信息一起保存在数据库中。
我一点问题都没有。

但是为什么当我再次添加相同的图像时,我可以同时看到这两个图像?我试着使用日志,一切都是正确的。。。。
    Set<String> set = mSharedPreferences.getStringSet("IMAGES", null);

    if(set != null)
        for(String uriString : set) {
            imagesUri.add(Uri.parse(uriString));
            Log.i("Immagine: ", Uri.parse(uriString) + "");
        }

    gridViewAdapter.notifyDataSetChanged();
public class GridViewAdapter extends ArrayAdapter {
    private final Context context;
    private ArrayList data = new ArrayList();

    public GridViewAdapter(Context context, int layoutResourceId,
                           ArrayList data) {
        super(context, layoutResourceId, data);
        this.context = context;
        this.data = data;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        SquaredImageView view = (SquaredImageView) convertView;
        if (view == null) {
            view = new SquaredImageView(context);
            view.setScaleType(ImageView.ScaleType.CENTER_CROP);
        }

        Uri url = (Uri) data.get(position);
        Picasso.with(context) //
                .load(url) //
                .fit() //
                .error(R.drawable.error)
                .into(view);

        return view;
    }
}