Android - ListView 将用户显示为 null

JDoe

我的应用程序中有一个活动,我想在其中显示所有经过身份验证的用户的列表。为此,我使用了一个列表视图和一个数组适配器。

问题:当我查询我的用户并在列表视图上显示他们时,列表显示两行都包含“null”。我不知道为什么。

final String userId = user.getUid();

database = FirebaseDatabase.getInstance().getReference(sharedPreferences.getString("school",null)).child("users").child(userId);
userList = (ListView) findViewById(R.id.highscoreList);
final Query users = database;

users.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot data: dataSnapshot.getChildren()){
            userArray.add(data.child("username").getValue()+ "") ;
        }

        ArrayAdapter adapter = new ArrayAdapter(StudentListActivity.this, android.R.layout.simple_list_item_1, userArray);
        userList.setAdapter(adapter);
        }
};

数据库

在此处输入图片说明

弗兰克·范·普费伦

据我所知,您database已经指向特定学校的特定用户。例如,路径/SomeSchoolName/Users/LAGbzHr...包含单个用户的属性。在这种情况下,for不需要侦听器中循环,并且实际上会导致您对 JSON 深入一层。

这应该更适合您共享的数据结构:

users.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        userArray.add(dataSnapshot.child("username").getValue(String.class)) ;

        ArrayAdapter adapter = new ArrayAdapter(StudentListActivity.this, android.R.layout.simple_list_item_1, userArray);
        userList.setAdapter(adapter);
    } 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章