我是 Firebase 的新手。所以,我有一个这样的数据库结构:
并希望将那些生成的 ID 显示到 ListView 中。我正在使用 FirebaseListAdapter。这是我的代码:
databaseReference = FirebaseDatabase.getInstance().getReference().child("Firebase").child("Users");
firebaseListAdapter = new FirebaseListAdapter<String>(this, String.class, android.R.layout.simple_list_item_1, databaseReference) {
@Override
protected void populateView(View v, String string, int position) {
TextView textView = (TextView) v.findViewById(android.R.id.text1);
textView.setText(string);
}
};
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(firebaseListAdapter);
这是我的用户类:
class User {
private String userName;
private String email;
void setUserName(String userName) {this.userName = userName;}
String getUserName() {return userName;}
void setEmail(String email) {this.email = email;}
String getEmail() {return email;}
}
当我编译这个时,我得到这个错误:com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String
我该如何解决这个问题?
提前致谢!
最佳答案
将populateView
方法实现改为
firebaseListAdapter = new FirebaseListAdapter<User>(this, User.class, android.R.layout.simple_list_item_1, databaseReference) {
@Override
protected void populateView(View v, User user, int position) {
TextView textView = (TextView) v.findViewById(android.R.id.text1);
String userKey = this.getRef(position).getKey();
textView.setText(userKey);
}
};
关于java - 如何在 java 中使用 FirebaseListAdapter 从 firebase 数据库中读取子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41281855/