gpt4 book ai didi

java - 无法使用解析检索查询

转载 作者:行者123 更新时间:2023-11-30 01:43:27 26 4
gpt4 key购买 nike

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

下面是我的代码使用 fragment 来显示 View ,因为它无法膨胀。

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());
}
}
});
}

重要更新:感谢 Shadow Droid 指出错误。调用getView()失败的原因是调用了evenList的List返回0。这个调用getView失败返回0,显示列表失败。

下面是我评论eventList.clear();时的错误信息

控制台错误:

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)

最佳答案

发生这种情况是因为您将空的 eventList 传递给您的适配器。参数和全局变量混淆。
全局变量 private List<Event> eventList;并在 onCreate 中初始化为空。

while as parameter in done 方法 you are clearing the list which you get parsing eventList.clear();

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 {

因此您的适配器被计为零,它不会调用 getView 方法。
作为解决方案,我建议通过评论 eventList.clear(); 来检查如果工作正常但您仍然需要清除列表然后选择不同的变量或参数名称

关于java - 无法使用解析检索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34104398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com