gpt4 book ai didi

java - 将计数器转换为最终数组

转载 作者:行者123 更新时间:2023-12-01 17:14:47 24 4
gpt4 key购买 nike

我正在尝试实现一个计数器,对来自 2 个不同集合的通知进行计数。一个集合计算好友请求,另一个集合计算事件请求。我想显示添加的两个集合中的数量。如果我只想显示一个集合的计数器,它工作得很好,但不能同时显示两者,因为它说:“将计数器转换为最终数组”,因为它位于内部类中。

错误所在行://receivecount = map.size();

所以我的代码现在看起来像这样

 mFirestore.collection("users").document(usid).collection("request").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
int receivecount = 0;


for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
String type = (String) doc.getDocument().get("Type");


final String otherID = (String) doc.getDocument().get("otherid");

mFirestore.collection("users").document(usid).collection("eventeinladung").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
Map map = doc.getDocument().getData();
// receivecount = map.size();




}
}
}
});

if (type.equals("received")) {
receivecount++;

}

}
}




if(receivecount == 0){
number.setVisibility(View.INVISIBLE);
numbercontainer.setVisibility(View.INVISIBLE);
}
else {
number.setText(String.valueOf(receivecount));

}



}
});

最佳答案

您无法更改内部类中的不可变值。这是一个解决方法:

像这样声明你的计数器:

int[] receivecount = {0};

然后增加里面的值:

receivecount[0]++;

关于java - 将计数器转换为最终数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61404793/

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