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

时间:2019-01-18 11:35:08

标签: java android firebase firebase-realtime-database android-listview

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

上面是我的Firebase实时数据库,我只想向我的783444显示234567ListView并单击以显示下一个活动。

请提供一些建议以解决我的问题。非常感谢。

1 个答案:

答案 0 :(得分:0)

要仅获取783444中的234567ListView这些键,请使用以下代码行:

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);