我正在编写地址簿APP并使用Parse服务。 我还使用listview和BaseAdapter来实现APP 我保存了很多人作为ParseObject。 每个ParseObject都包含一张保存为文件的照片。 我得到了所有ParseObjects:
ArrayList<ParseObject> list = new ArrayList<ParseObject>();
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("member");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
list = (ArrayList<ParseObject>) objects;
mMyadapter = new MyAdapter(context, list);
}
else {
}
});
在适配器中,我想显示ParseFile中的图像 我的问题是: 如何从列表中获取ParseFile? 我试过下面的代码,但APP会突然关闭。 我在MyAdapter中编写了getView方法,如下所示:
ParseFile pf = (ParseFile) list.get(position).get("photo1");
pf.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] bytes, ParseException e) {
if (e == null) {
Bitmap bm = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
viewTag.imageView1.setImageBitmap(bm);
}
else {
Log.d("debug", "bad");
}
}
});
我不能使用getUrl()...... 有人能告诉我如何修改它吗?非常感谢你的帮助!
答案 0 :(得分:0)
list
。list
可能指向new ArrayList<ParseObject>()
或(ArrayList<ParseObject>) objects
,具体取决于ParseQuery是否已完成,因此您可能会在list.get()
上调用MyAdapter
无效的职位。简而言之,将您的成员变量设为本地变量。此外,如果getItem()
是一个匿名类,请将该代码拉出到静态内部类中,这样它就不会引用其包含的类&#39;成员变量。使用list.get()
访问您的ParseObjects,而不是{{1}}。