Java 无法使用分析检索查询
您好,我正在学习android并尝试显示自定义的ListView,但无法加载。问题来自我的查询,因为列表为空。请问我在下面的解析示例中做错了什么 下面是我的代码,使用片段来显示视图,因为视图无法膨胀 EventTab.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
//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 {