如何在Parse上传多个图像?

时间:2015-10-21 09:11:12

标签: android image parse-platform

我需要Parse Android API和图片上传/更新方面的帮助。我的应用中的用户可以创建具有与该事件相关的一个或多个图像的事件。因此,此图像存储为具有解析文件的数组对象。

用户可以编辑他为该活动添加的图像。因此,用户可能想要删除图像或添加新图像。所以,我有问题,我如何编辑数组来删除特定的图像。

我的想法是在手机上下载所有图像,当用户添加/删除图像在本地更新它然后再次上传所有图像到Parse并更新该图像数组,但似乎无法正常工作,因为我只上传一张图片。

我如何解决这个问题,任何想法都表示赞赏。

for (int i = 0; i < ImagesSingleton.getInstance().getBytesList().size(); i++) {
    String fileName = FileHelper.getFileName(getActivity(), ImagesSingleton.getInstance().getUrisList().get(i), "image");
    byte[] b = ImagesSingleton.getInstance().getBytesList().get(i);
    final ParseFile imgFile = new ParseFile(fileName, ImagesSingleton.getInstance().getBytesList().get(i));
    imgFile.saveInBackground(new SaveCallback() {
        @Override
        public void done(com.parse.ParseException e) {
            if (e == null) {
                listOfFiles.add(imgFile);
                if (listOfFiles.size() == ImagesSingleton.getInstance().getUrisList().size()) {
                    offer.put(ParseConstants.OFFER_PICTURES, listOfFiles);
                    offer.saveInBackground(new SaveCallback() {
                        @Override
                        public void done(com.parse.ParseException e) {
                            if (e == null) {
                                mProgressDialog.dismiss();
                                Toast.makeText(getActivity(), "Sucess saving", Toast.LENGTH_SHORT).show();
                                ImagesSingleton.getInstance().reset();
                                transferToRadar();
                            } else {
                                mProgressDialog.dismiss();
                                Toast.makeText(getActivity(), getResources().getString(R.string.error) + e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                }
            }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

我认为在文档中很清楚如何从Parse中的Array列中删除元素。您只需要发送要从阵列中删除的文件列表,如下所示:

offer.removeAll(ParseConstants.OFFER_PICTURES, listOfFilesToRemove);
offer.saveInBackground();