我一直对一个问题感到非常沮丧。我如何访问我在内部类中获得的数据。我为我的新应用程序的后端使用了Parse,但所有解析方法都是匿名使用的并且是内部类,因此我无法真正访问任何检索到的内容。有没有办法解决它?从内部类获取数据
我试过这个,它没有工作。一切都需要是最终的,决赛在内部阶层中不能改变。
这是我的代码。
imageView_intro = (ImageView)findViewById(R.id.imageView_intro);
List<Bitmap> list = new ArrayList<Bitmap>();
BackEndUtils.downloadIntroImage(list);
imageView_intro.setImageBitmap(list.get(0));
public static void downloadIntroImage(final List<Bitmap> list){
ParseQuery query = new ParseQuery("Intro");
query.whereEqualTo("name","intro");
//BEUFindCallBack beuFindCallBack = new BEUFindCallBack("image");
query.findInBackground(new FindCallback<ParseObject>(){
@Override
public void done(List<ParseObject> parseObjects, com.parse.ParseException e) {
for(ParseObject tempObject: parseObjects){
ParseFile tempFile = (ParseFile)tempObject.get("image");
tempFile.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] bytes, com.parse.ParseException e) {
list.add(bytesToBitMap(bytes));
}
});
}
}
});
}
public static Bitmap bytesToBitMap(byte[] bytes){
Bitmap bitmap = BitmapFactory
.decodeByteArray(
bytes, 0,
bytes.length);
return bitmap;
}
最后,名单仍然有一个大小为0 ...没什么意思实际上是添加到它。我如何访问byte[]
变量并退出内部课程!?
奇怪的是,如果我发送图像视图并将bitmapimage设置在内部类中,它就起作用了。但我希望能够将字节数组从内部的匿名类中取出并保存在某个地方,以便稍后处理。
当你说'内部类'时,你是指'done'方法内的'anonymous class'吗? – Andreas
@Andreas是的! :) –
推测,'tempFile.getDataInBackground'将启动一个线程并在后台执行工作。直到“稍后”才会看到结果。如果你需要“现在”的结果,不要把工作做到背景。 – Andreas