我在Parse.com
中有一个名为Objects的类。该类包含许多字段,并且还包含10 ParseFile
字段,它们是图像。我正在使用下面的代码,以便在对象类中添加一个新项目。解析 - 将多个图像保存在同一个对象中
ParseObject object = new ParseObject("Objects");
object.put("field1", "test1");
object.put("field2", "test2");
int imagesSize = Details.getInstance().getImages().size();
for (int i = 0; i < imagesSize; i++) {
//convert bitmap to byte[]
Bitmap bmp = Details.getInstance().getImages().get(i);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] data = stream.toByteArray();
//convert byte[] to parse file
ParseFile file = new ParseFile("objectImage.png", data);
file.saveInBackground();
object.put("image" + numbers[i], file);
}
object.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
Log.i("Add", "done");
}else{
Log.i("Add", e.getMessage());
}
}
});
我的问题是,我收到此错误
java.lang.IllegalStateException: Unable to encode an unsaved ParseFile
我知道,我应该多张图片使用以下,以节省ParseFile
//convert bitmap to byte[]
Bitmap bmp = Details.getInstance().getImages().get(i);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] data = stream.toByteArray();
//convert byte[] to parse file
ParseFile file = new ParseFile("objectImage.png", data);
file.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
object.put("image" + numbers[i], file);
}else{
Log.i("Add", e.getMessage());
}
}
});
,但现在我不知道如何实施。如果我在for loop
里使用saveCallBack
,那么我不会得到正确的结果。
保存在不同的领域不同的图像得到ParseFile数组对象,你是保存图像中只有一个字段名称是“形象”,所以它不是保存多个图像。 其他智慧商店首先解析文件数组列表,然后保存所有解析文件并获得回叫。 –