我一直對一個問題感到非常沮喪。我如何訪問我在內部類中獲得的數據。我爲我的新應用程序的後端使用了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