我知道有很多类似于我的问题,但是我已经阅读并尝试了所有方法,但仍无法解决这个问题。我想要实现的是从 Firebase 加载数据并将其展示在列表视图中。我正在遵循 YouTube 上的教程,但我添加了一些东西,具体来说是时间戳。错误出现在我的 for 循环中,提示:
以下是我的NoteList.java文件。
任何建议都将不胜感激!提前感谢您。编辑:好的,我尝试了建议的答案,并且在我登录地图后,它会在控制台上显示我的数据。但是,我如何将我的映射迭代到列表视图中?
Class java.util.Map has generic type parameters, please use GenericTypeIndicator instead
这是我的数据库长这样:
我的 Notes.java:
public class Notes {
String noteId;
String noteCategory;
String note;
String rating;
public Map timeStamp;
public Notes(){
}
public Notes(String noteId, String noteCategory, String note, String rating, Map timeStamp) {
this.noteId = noteId;
this.noteCategory = noteCategory;
this.note = note;
this.rating = rating;
this.timeStamp = timeStamp;
}
public String getNoteId() {
return noteId;
}
public String getNoteCategory() {
return noteCategory;
}
public String getNote() {
return note;
}
public String getRating() {
return rating;
}
public Map<String,String> getTimeStamp() { return timeStamp;}
}
以下是我的NoteList.java文件。
@Override
protected void onStart() {
super.onStart();
databaseNotes.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
notesList.clear();
for(DataSnapshot noteSnapshot : dataSnapshot.getChildren()){
Notes notes = noteSnapshot.getValue(Notes.class);
notesList.add(notes);
}
NoteList adapter = new NoteList(MyNotes.this, notesList);
listViewNotes.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
任何建议都将不胜感激!提前感谢您。编辑:好的,我尝试了建议的答案,并且在我登录地图后,它会在控制台上显示我的数据。但是,我如何将我的映射迭代到列表视图中?
Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
timeStamp
的类型是Map
,但它没有表明键和值的类型。应该写成类似于Map<String, String>
这样的形式。 - 0xDEADC0DE