【问题标题】:Unable to show all the strings retrieved from FirebaseDatabase无法显示从 FirebaseDatabase 检索到的所有字符串
【发布时间】:2017-04-08 11:25:16
【问题描述】:

我正在尝试从 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) {

    }
});

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

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

【问题讨论】:

    标签: android firebase firebase-realtime-database android-arrayadapter android-spinner


    【解决方案1】:

    声明 ArrayList spinnerArray = new ArrayList();在你的类中而不是在 onDatachange 方法中

    通过保持 onDatachange 变量是新创建的,所以每次插入新值时,你都会得到最后一个要显示的值。

    【讨论】:

    • 酷...但是在按照您的回答后,appcompatspinner 显示为空白,当我单击它时,会显示条目,但是当我选择一个时,它又消失了!
    猜你喜欢
    • 2019-08-29
    • 2017-01-07
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2013-08-01
    • 2015-01-08
    • 1970-01-01
    • 2020-09-18
    相关资源
    最近更新 更多