Android 无法显示从FirebaseDatabase检索到的所有字符串
我正在尝试从firebase检索一些字符串,并尝试将它们显示为Android 无法显示从FirebaseDatabase检索到的所有字符串,android,firebase,firebase-realtime-database,android-arrayadapter,android-spinner,Android,Firebase,Firebase Realtime Database,Android Arrayadapter,Android Spinner,我正在尝试从firebase检索一些字符串,并尝试将它们显示为AppCompatSpinner的条目 下面是我如何检索它的: vDatabase.child(key).addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Map<String, String> ne
AppCompatSpinner
的条目
下面是我如何检索它的:
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) {
}
});
vDatabase.child(key).addListenerForSingleValueEvent(新值EventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Map newRequest=(Map)dataSnapshot.getValue();
vName=newRequest.get(“vName”);
Toast.makeText(getBaseContext(),venueName,Toast.LENGTH_SHORT).show();
if(vName!=null){
ArrayList SpinneArray=新的ArrayList();
spinnerray.add(vName);
ArrayAdapter适配器=新的ArrayAdapter(
getBaseContext(),android.R.layout.simple\u微调器\u下拉菜单\u项,微调阵列);
venueSpinner.setAdapter(适配器);
}否则{
Toast.makeText(getBaseContext(),“v==null”,Toast.LENGTH_SHORT.show();
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
问题是,上面的代码正在检索所有字符串,但只显示最后获取的字符串,而不是所有字符串
这里有什么问题,如何显示从
FirebaseDatabase
检索到的所有字符串?声明ArrayList SpinneArray=new ArrayList();在类中,而不是在onDatachange方法中
通过保持onDatachange,变量将新创建,因此每次插入新值时,都会得到要显示的最后一个值。Declare ArrayList spinnerary=new ArrayList();在类中,而不是在onDatachange方法中
通过保持onDatachange,变量是新创建的,因此每次插入新值时,都会得到最后一个要显示的值。cool。。。但是在遵循您的答案之后,appcompatspinner显示为空白,当我单击它时,条目会显示出来,但当我选择一个时,它会再次消失!酷。。。但是在遵循您的答案之后,appcompatspinner显示为空白,当我单击它时,条目会显示出来,但当我选择一个时,它会再次消失!