无法显示从FirebaseDatabase检索到的所有字符串

问题描述:

我试图从firebase检索一些字符串,并试图将它们显示为AppCompatSpinner的条目。无法显示从FirebaseDatabase检索到的所有字符串

这里是我如何取回:

vDatabase.child(key).addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue(); 
     vName = newRequest.get("vName"); 
     Toast.makeText(getBaseContext(), venueName, Toast.LENGTH_SHORT).show(); 
     if (vName != null) { 
      ArrayList<String> spinnerArray = new ArrayList<>(); 
      spinnerArray.add(vName); 

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(
        getBaseContext(), android.R.layout.simple_spinner_dropdown_item, spinnerArray); 

      venueSpinner.setAdapter(adapter); 
     } else { 
      Toast.makeText(getBaseContext(), "v == null", Toast.LENGTH_SHORT).show(); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

的问题是,上面的代码检索所有的字符串,但只显示最后获取的字符串,而不是全部。

这里出现了什么问题,以及如何显示从FirebaseDatabase检索到的所有字符串?

声明ArrayList spinnerArray = new ArrayList <>();在你的班级里不是onDatachange方法

通过保持onDatachange变量是新创建的,所以每当新值被插入它时,所以你得到最后一个值来显示。

+0

很酷......但是,在遵循您的回答后,appcompatspinner显示为空白,当我点击它时,条目会显示,但是当我选择它时,它会再次消失! –