0
我正在开发一个应用程序,其中的用户可以有多个列表。我的火力地堡数据库看起来是这样的:如何使用HashMap <String,String>显示来自Firebase数据库的记录?
,我使用的模型是这样的:
public class UserModel {
private String userId;
private String userName;
private String userEmail;
private HashMap<String, String> lists;
public UserModel() {}
public void setUserId(String userId) {this.userId = userId;}
public String getUserId() {return userId;}
public void setUserName(String userName) {this.userName = userName;}
public String getUserName() {return userName;}
public void setUserEmail(String userEmail) {this.userEmail = userEmail;}
public String getUserEmail() {return userEmail;}
public void setLists(HashMap<String, String> lists) {this.lists = lists;}
public HashMap<String, String> getLists() {return lists;}
}
为了显示列表,我用一个FirebaseListAdapter
和ListView
。如果我使用这样的代码:
DatabaseReference listsRef = usersRef.child(userId).child("lists");
adapter = new FirebaseListAdapter<Map<String, String>>(MainActivity.this, Map.class, android.R.layout.simple_list_item_1, listsRef) {
@Override
protected void populateView(View v, Map<String, String> map, int position) {
for (Map.Entry<String, String> entry : map.entrySet()) {
Log.d(TAG, entry.getKey() + "/" + entry.getValue());
}
}
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(adapter);
}
我得到这个错误:
Error:(221, 31) error: no suitable constructor found for FirebaseListAdapter
所有我想要做的就是使用HashMap
显示the key
和the value
。我错在哪里?提前致谢!
其实,你帮了我很多。它正在工作。如果我使用'setOnItemClickListener'并使用'adapterView.getItemAtPosition(position);'我得到'listName'。你有什么想法我怎么能从'adapter'获得'listKey'?非常感谢! –
您可以将'listKey'保存在另一个列表变量的某个位置,然后您可以根据位置检索任何值。 :) @AlexM。 – Wilik
“另一个列表变量”,这是什么意思?我如何根据职位获取价值?再次感谢您的回答! –