gpt4 book ai didi

java - 如果我使用单独的 utils 类的静态方法添加 Firebase 事件监听器,如何删除它们?

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

我正在开发一个论坛应用程序,我必须在其中编写相同的代码,例如在很多地方向 Firebase 引用添加监听器、将数据绑定(bind)到 View 等。因此,我编写了一个 Utils 类,其中包含所有此类重复代码的方法。

public class UIUtils {
public static FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();
public static DatabaseReference mReference = mDatabase.getReference();

public static class DataBindingUtils {
public static void bindDataToFollowButton(final RecyclerViewHolder.UnansweredRecyclerViewHolder
holder, String questionKey, final String userName) {
mReference.child("Posts").
child(questionKey).child("Followers")
.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.exists()) {
if (dataSnapshot.getValue().equals(userName)) {
holder.FollowButton.setChecked(true);
}
}
}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Log.v("onChildRemoved", dataSnapshot.toString());
}
}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

}

如何删除上述方法中的此类监听器?

最佳答案

这样做:

定义监听器

private ChildEventListener mListener = new ChildEventListener() {
//Your Implementation of Listener
}

将监听器添加到 DatabaseReference:

mReference.addChildEventListener(mListener);

从 DatabaseReference 中删除监听器:

mReference.removeEventListener(mListener);

关于java - 如果我使用单独的 utils 类的静态方法添加 Firebase 事件监听器,如何删除它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50005367/

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