2 回答
TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
調(diào)用adapter.notifyDataSetChanged()您的查詢完成回調(diào),這將通知適配器列表已更改。發(fā)生這種情況是因?yàn)楫?dāng)您設(shè)置適配器時(shí),列表是空的,因?yàn)椴樵冊(cè)诤笈_(tái)運(yùn)行。完成后,您必須告訴適配器新數(shù)據(jù)已添加到列表中:
if (e == null) {
for (ParseObject obj : objList) {
...
}
adapter.notifyDataSetChanged();
}
此外,在發(fā)送查詢之前創(chuàng)建您的適配器,否則可能會(huì)導(dǎo)致NullPointerException在下一條語句執(zhí)行之前加載數(shù)據(jù)(這種可能性很小,但絕對(duì)不會(huì)影響安全)。
dbObjects = new ArrayList<>();
adapter = new CategoryRAdapter(this, dbObjects);
ParseQuery<ParseObject> query = ParseQuery.getQuery("Category");
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
我建議您使用 RxJava2 來使用異步方法,這太棒了……關(guān)于這個(gè)問題,當(dāng)您已經(jīng)使用 ArrayList 創(chuàng)建適配器時(shí),您的數(shù)據(jù)可能還沒有準(zhǔn)備好。
嘗試將 ) 移動(dòng)到創(chuàng)建食物對(duì)象后的recyclerView.setAdapter(內(nèi)部。FindCallback
添加回答
舉報(bào)
