从ParseQuery获取ParseFile

时间:2014-05-26 09:48:56

标签: android parse-platform

我正在编写地址簿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()...... 有人能告诉我如何修改它吗?非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

  1. 您不需要初始化list
  2. 您是如何设置ViewGroup的适配器的?目前,只有在完成ParseQuery后才能创建新的适配器。您的适配器可能未正确设置。
  3. 由于list可能指向new ArrayList<ParseObject>()(ArrayList<ParseObject>) objects,具体取决于ParseQuery是否已完成,因此您可能会在list.get()上调用MyAdapter无效的职位。
  4. 简而言之,将您的成员变量设为本地变量。此外,如果getItem()是一个匿名类,请将该代码拉出到静态内部类中,这样它就不会引用其包含的类&#39;成员变量。使用list.get()访问您的ParseObjects,而不是{{1}}。