2 回答

TA貢獻2021條經(jīng)驗 獲得超8個贊
調(diào)用adapter.notifyDataSetChanged()您的查詢完成回調(diào),這將通知適配器列表已更改。發(fā)生這種情況是因為當(dāng)您設(shè)置適配器時,列表是空的,因為查詢在后臺運行。完成后,您必須告訴適配器新數(shù)據(jù)已添加到列表中:
if (e == null) {
for (ParseObject obj : objList) {
...
}
adapter.notifyDataSetChanged();
}
此外,在發(fā)送查詢之前創(chuàng)建您的適配器,否則可能會導(dǎo)致NullPointerException在下一條語句執(zhí)行之前加載數(shù)據(jù)(這種可能性很小,但絕對不會影響安全)。
dbObjects = new ArrayList<>();
adapter = new CategoryRAdapter(this, dbObjects);
ParseQuery<ParseObject> query = ParseQuery.getQuery("Category");

TA貢獻1865條經(jīng)驗 獲得超7個贊
我建議您使用 RxJava2 來使用異步方法,這太棒了……關(guān)于這個問題,當(dāng)您已經(jīng)使用 ArrayList 創(chuàng)建適配器時,您的數(shù)據(jù)可能還沒有準備好。
嘗試將 ) 移動到創(chuàng)建食物對象后的recyclerView.setAdapter(
內(nèi)部。FindCallback
添加回答
舉報