无法显示从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变量是新创建的,所以每当新值被插入它时,所以你得到最后一个值来显示。
很酷......但是,在遵循您的回答后,appcompatspinner显示为空白,当我点击它时,条目会显示,但是当我选择它时,它会再次消失! –