gpt4 book ai didi

java - 如何更改为我可以删除的 ValueEventListener?

转载 作者:行者123 更新时间:2023-12-02 09:22:30 25 4
gpt4 key购买 nike

我有一个 Firebase valueEvent 监听器:

 questions.orderByChild("CategoryID").equalTo(categoryID)
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Question ques = postSnapshot.getValue(Question.class);
Common.questionList.add(ques);
}
//Random List
Collections.shuffle(Common.questionList);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

作为拥有可以附加和删除的对象的最佳实践,我想将代码更改为 ValueEventListener 对象。我做了以下事情:

mQuestionsListener = questions.orderByChild("CategoryID").equalTo(categoryID)
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Question ques = postSnapshot.getValue(Question.class);
Common.questionList.add(ques);
}
//Random List
Collections.shuffle(Common.questionList);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
questions.addValueEventListener(mQuestionsListener);

但不工作。我哪里错了?

最佳答案

您已经在此处添加了一个监听器questions.addValueEventListener(mQuestionsListener);,那么您需要声明一个新的ValueEventListener():

ValueEventListener mQuestionsListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Question ques = postSnapshot.getValue(Question.class);
Common.questionList.add(ques);
}
//Random List
Collections.shuffle(Common.questionList);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

关于java - 如何更改为我可以删除的 ValueEventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58590264/

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