Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法显示从FirebaseDatabase检索到的所有字符串_Android_Firebase_Firebase Realtime Database_Android Arrayadapter_Android Spinner - Fatal编程技术网

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

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

我正在尝试从firebase检索一些字符串,并尝试将它们显示为
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显示为空白,当我单击它时,条目会显示出来,但当我选择一个时,它会再次消失!