我在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數組對象,你是保存圖像中只有一個字段名稱是「形象」,所以它不是保存多個圖像。 其他智慧商店首先解析文件數組列表,然後保存所有解析文件並獲得回叫。 –