Java 无法使用分析检索查询

Java 无法使用分析检索查询,java,android,listview,parse-platform,Java,Android,Listview,Parse Platform,您好,我正在学习android并尝试显示自定义的ListView,但无法加载。问题来自我的查询,因为列表为空。请问我在下面的解析示例中做错了什么 下面是我的代码,使用片段来显示视图,因为视图无法膨胀 EventTab.java: //query Events for current user private void queryEventListFromParse(){ //Create query for objects of type

您好,我正在学习android并尝试显示自定义的ListView,但无法加载。问题来自我的查询,因为列表为空。请问我在下面的解析示例中做错了什么

下面是我的代码,使用片段来显示视图,因为视图无法膨胀

EventTab.java:

        //query Events for current user
        private void queryEventListFromParse(){

            //Create query for objects of type "Event"
            ParseQuery<ParseObject> query = ParseQuery.getQuery("Event");
            // Restrict to cases where the author is the current user.
            //pass in a ParseUser and not String of that user

            query.whereEqualTo("author", ParseUser.getCurrentUser());
            query.orderByAscending("createAt");

            // Run the query
            query.findInBackground(new FindCallback<ParseObject>() {
                @Override
                public void done(List<ParseObject> eventList, ParseException e) {
                    if (e == null) {
                        // If there are results, update the list of event and notify the adapter
                        Log.d(TAG, "Im in background"); //im able to display image
                        eventList.clear();
                        for (ParseObject event : eventList) {
                            eventList.add(event);
                        }

                        updateEventsList();

                    } else {
                        Log.d(TAG, "Event retrieval error: " + e.getMessage());
                    }
                }
            });
        }

当您将空的事件列表传递给适配器时,就会发生这种情况。参数和全局变量混淆。
全局变量
私有列表事件列表并在onCreate中初始化为空

而作为参数在done方法中,您正在清除解析
eventList.clear()后得到的列表

query.findInBackground(新的FindCallback(){
@凌驾
public void done(List eventList,parsee异常){
如果(e==null){
//如果有结果,请更新事件列表并通知适配器
Log.d(标记“背景中的Im”);//我能够显示图像
eventList.clear();
for(ParseObject事件:eventList){
添加(事件);
}
updateEventsList();
}否则{
因此,适配器的计数为零,它将不调用getView方法。

作为一种解决方案,我建议通过注释
事件列表进行检查
如果工作正常,仍然需要清除列表,则选择不同的变量或参数名称

如果出现任何错误或崩溃,则共享它的post listview_event_item.xml和stack trace@ρ∑ρєK它无法显示自定义列表。@user3497437:还重写
getCount
方法,然后尝试运行它并使用
getActivity()
而不是
getActivity().getApplicationContext()
@ρ∑ρρK它没有崩溃,但无法显示自定义列表是的,谢谢我注意到了。我对它进行了注释,但返回了一个错误?
12-05 04:52:10.511  11450-11450/com.example.davchen.skibuddies E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.davchen.skibuddies, PID: 11450
    java.util.ConcurrentModificationException
            at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
            at com.example.davchen.skibuddies.Fragments.EventTab$1.done(EventTab.java:87)
            at com.example.davchen.skibuddies.Fragments.EventTab$1.done(EventTab.java:80)
            at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:115)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:145)
            at android.app.ActivityThread.main(ActivityThread.java:5942)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
query.findInBackground(new FindCallback<ParseObject>() {
                @Override
                public void done(List<ParseObject> eventList, ParseException e) {
                    if (e == null) {
                        // If there are results, update the list of event and notify the adapter
                        Log.d(TAG, "Im in background"); //im able to display image
                        eventList.clear();
                        for (ParseObject event : eventList) {
                            eventList.add(event);
                        }

                        updateEventsList();

                    } else {