简体   繁体   English

如何从 Firebase 实时数据库获取数据到 ListView?

[英]How to get the data from Firebase realtime database to ListView?

-Quiz
  -MCQ
    -Question
       -1831
         -783444
           -//still got data
         -234567
           -//still got data

Above is my Firebase realtime database and I want only show the 783444 and 234567 to my ListView and clickable to next activity.上面是我的 Firebase 实时数据库,我只想向我的ListView显示783444234567并且可点击到下一个活动。

Please give some advise to solve my problem.请给出一些建议来解决我的问题。 Thank you very much.非常感谢。

To get only those keys, 783444 and 234567 in a ListView , please use the following lines of code:要在ListView仅获取这些键783444234567 ,请使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = rootRef.child("Quiz").child("MCQ").child("Question").child("1831");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        ArrayList<String> list = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();
            list.add(key);
        }
        ListView listView = (ListView) findViewById(R.id.list_view);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, list);
        listView.setAdapter(arrayAdapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //Go to next activity
            }
        });
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {}
};
ref.addListenerForSingleValueEvent(valueEventListener);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM