Android-Class java.util.Map具有泛型类型参数,请改用GenericTypeIndicator
我知道有很多类似的问题,但我已经阅读并尝试了所有的方法,但仍然无法解决这个问题。我试图实现的是用firebase中的数据填充我的listview。我关注youtube上的教程,但我添加了一些东西,特别是时间戳。错误在我的for循环中,并显示: 类java.util.Map具有泛型类型参数,请改用GenericTypeIndicator 这是我的数据库,看起来像: MyNotes.javaAndroid-Class java.util.Map具有泛型类型参数,请改用GenericTypeIndicator,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我知道有很多类似的问题,但我已经阅读并尝试了所有的方法,但仍然无法解决这个问题。我试图实现的是用firebase中的数据填充我的listview。我关注youtube上的教程,但我添加了一些东西,特别是时间戳。错误在我的for循环中,并显示: 类java.util.Map具有泛型类型参数,请改用GenericTypeIndicator 这是我的数据库,看起来像: MyNotes.java public class Notes { String noteId; String noteCa
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;}
}
任何建议都将不胜感激!先谢谢你
编辑:好的,我尝试了建议的答案,在我记录了地图后,它会在控制台上显示我的数据。但是,如何将映射迭代到listview中
Map Map=(Map)dataSnapshot.getValue();
通过查看数据库,您似乎应该使用
int
或long
类型而不是map
类型,因为您的时间戳有一个数字值可能与成员的重复时间戳
类型为map
,但它没有指示键和值属于哪种类型。应该是Map
是的,我已经试过了所有的方法。它不起作用@Nileshrathoddost对我的案子不起作用:(@QandilTariqjust将其更改为long?我确实尝试将所有内容从Map更改为long。但它显示了另一个错误此错误com.google.firebase.database.DatabaseException:反序列化时应为Map,但得到了一个类java.lang.long您是否更改了类中的所有引用并使用了Notes=notesnashot.getValue(Notes.class);
?
@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();