gpt4 book ai didi

java - Android ListView 适配器无法与 Parse SDK 一起使用

转载 作者:行者123 更新时间:2023-12-01 09:50:59 25 4
gpt4 key购买 nike

我是 Android 的绝对初学者,我可以成功地从 Parse 数据库中检索数据,但无法将它们显示到自定义 ListView 中,有线问题是应用程序停止,但 Android 监视器或消息控制台都没有停止Android Studio 给我任何错误,消息控制台实际上显示信息:BUILD SUCCESSFUL,Logcat 完全为空,但应用程序停止并显示类似不幸的是,YourApp 已停止

这是我在 MainActivity.java 中的代码:

 // MARK: - QUERY EVENTS
public void queryEvents() {

final ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this,
R.layout.test_cell);
final ListView eventsListView = (ListView) findViewById(R.id.eventsListView);
eventsListView.setAdapter(listAdapter);

// Query
ParseQuery<ParseObject> query = ParseQuery.getQuery("EventsClass");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> objects, ParseException error) {
if (error == null) {
eventsArray = objects;
progDialog.dismiss();

for (int i = 0; i < eventsArray.size(); i++) {
ParseObject eventClass = eventsArray.get(i);
String title = eventClass.getString("title");
Toast.makeText(getApplicationContext(), eventClass.getString("title"), Toast.LENGTH_LONG).show();
listAdapter.add(title);
}

} else {
Toast.makeText(getApplicationContext(), error.getMessage().toString(), Toast.LENGTH_LONG).show();
}

}
});

注意:如果我评论 listAdapter.add(title); ,则 Toast 消息没问题,它会逐一触发我的 Parse 数据库中的所有“title”记录,并且应用程序不会崩溃。否则,我不会收到任何数据,并且应用程序将停止,如上所述。

我的 R.layout。test_cell 是一个简单的 xml 文件,它是正确的,它托管一个带有 TextView 的 LinearLayout。

我在这里做错了什么?我还没有创建任何自定义 ListAdapter.java 文件,不知道我是否真的需要上面的代码...

谢谢!

最佳答案

我认为你的问题基于你的初始化方式 listAdapter ,我建议您做两件事:

1) 创建 ArrayList<String>保存从解析中获得的所有记录

2) 初始化listAdapter确保使用以 Context 作为参数的构造函数, layout , idArrayList 。您已经拥有前两个参数,只需添加第三个参数,即 TextView 的 id在R.layout.test_cell对于第四个参数添加 ArrayList你创造的。确保在此之前使用new ArrayList<>()对其进行初始化

3) 当您从解析中收到值时,更新 ArrayList而不是更新 Adapter直接地。像这样的事情:

    for (int i = 0; i < eventsArray.size(); i++) {
ParseObject eventClass = eventsArray.get(i);
String title = eventClass.getString("title");
arrayList.add(title);
}
// Once you update your ArrayList you can update the Adapter
listAdapter.notifyDataSetChanged();

这应该可以解决问题。

关于java - Android ListView 适配器无法与 Parse SDK 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595310/

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