解析对象try / catch异常错误

时间:2015-12-11 05:09:01

标签: java android listview parse-platform

我正在尝试从parse.com获取特定对象的值列表,但是我似乎正在努力解决一个不断出现在我的屏幕上的错误,这似乎不对,除非它与我可能错过的其他一些问题有关。我已将我的aF变量初始化为List aF;因为你在这堂课中看不到它。我得到的错误是在aF = query.find()上,它表示未处理的异常,

protected Void doInBackground(Void... params) {
        // Locate the class table named "UploadedFiles" in Parse.com
        ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("UploadedFiles");
        query.orderByDescending("_created_at");

        try {
            Toast.makeText(getActivity(), "Success",
                    Toast.LENGTH_LONG).show();
            aF = query.find();
        } catch (ParseException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return null;
        }

我还试图实现一个if语句异常规则,但它也给了我错误,其中我认为我不应该使用它,因为我不能用这种情况实现return语句。

public void done(ParseException e) {
                            if (e == null) {
                                aF = query.find()
                                Toast.makeText(getActivity(), "Success",
                                        Toast.LENGTH_LONG).show();
                            } else {
                                Log.d("Error", e.toString());
                            }
                        }
                    });

编辑

protected Void doInBackground(Void... params) {
        // Locate the class table named "UploadedFiles" in Parse.com
        ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("UploadedFiles");
        query.orderByDescending("_created_at");
        query.findInBackground(new FindCallback<ParseObject>() {

            @Override
            public void done(List<ParseObject> objects, com.parse.ParseException e) {

                try {
                    aF = query.find();
                } catch (ParseException e) {
                    Log.e("Error", e.getMessage());
                    e.printStackTrace();
                }

            }

        });
        return null;
    }

感谢您的所有答案,我现在收到一条新错误,说明从内部类中访问变量查询,需要声明为final。这是否意味着我必须将其设置为return语句?

1 个答案:

答案 0 :(得分:1)

你这样使用。

使用回调FindCallback

  

从中检索满足此查询的ParseObjects列表   来自后台线程。

query.findInBackground(new FindCallback<ParseObject>() {

        @Override
        public void done(List<ParseObject> arg0, ParseException arg1) {
            // TODO Auto-generated method stub

        }
    });