为什么数组列表不能添加字符串?



在我的代码中,我制作了

ArrayList<String> allpromo =new ArrayList<>();

作为全局变量,并在onCreate(({}中

我写了

database.getReference().child("PromoCodes").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
allpromo.clear();
for(DataSnapshot snapshot1 : snapshot.getChildren())
{
String val=snapshot1.child("Promo").getValue(String.class);
Toast.makeText(getApplicationContext(), val, Toast.LENGTH_SHORT).show();
allpromo.add(val);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});

if(allpromo.isEmpty()) {
Toast.makeText(getApplicationContext(), "0", Toast.LENGTH_SHORT).show();
}

它正在向我显示";Promo"来自firebase,但为什么它不能在arraylist中添加项目。Beacause it Toast";0〃。这意味着我的数组仍然是空的。而且它仍然烤项目的火球

但为什么呢?在此处输入图像描述

我的数据库是

database.getReference().child("PromoCodes").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
allpromo.clear();
for(DataSnapshot snapshot1 : snapshot.getChildren())
{
String val=snapshot1.child("Promo").getValue(String.class);
Toast.makeText(getApplicationContext(), val, Toast.LENGTH_SHORT).show();
allpromo.add(val);
}
if(allpromo.isEmpty()) {
Toast.makeText(getApplicationContext(), "0", 
Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});


最新更新