使用 headers 从 firebase 检索列表视图数据

Retrieve listview data from firebase with headers

我已经把它放在数组适配器下面但它没有响应我在这一行收到错误:adapter.add((String) dataSnapshot.getValue()); ClassCastException java.util.Hashmap 无法转换为 java.lang.String 我应该将代码具体放在哪里?

public class 关于扩展片段 {

ListView aboutList;

private ArrayList<String> items;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    //return inflater.inflate(R.layout.about, container, false);
    View v = inflater.inflate(R.layout.about, container, false);
    aboutList = (ListView) v.findViewById(R.id.aboutus);

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1);

    aboutList.setAdapter(adapter);


    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference aboutRef = rootRef.child("about");
    ValueEventListener valueEventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                String key = ds.getKey();
                Log.d("TAG", key);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    aboutRef.addListenerForSingleValueEvent(valueEventListener);
    rootRef.child("About").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            adapter.add((String) dataSnapshot.getValue());
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    return v;
}


@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    getActivity().setTitle("About");
}

}

要解决此问题,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference aboutRef = rootRef.child("about");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();
            Log.d("TAG", key);
        }
    }

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

输出将是:

Departament
Fondation
Objectif