databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
myList.clear();
Iterable<DataSnapshot> children = dataSnapshot.getChildren();
try{
for(DataSnapshot child : children){
History_Date history_date = child.getValue(History_Date.class);
myList.add(history_date);
ArrayAdapter<History_Date> adapter = new ArrayAdapter<History_Date>(getActivity(), android.R.layout.simple_list_item_1, myList);
historyListView.setAdapter(adapter);
}catch(Exception e){
e.printStackTrace();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我可以从android中的firebase中检索到正确的数据,但它在页面中显示错误的数据。它显示的是com.example.XXXX.XXX@7ae91f2,com.example.XXXX.XXX@7bc91f2。这有什么问题?
P.S。我正在使用这个类的片段,它有一个布局xml文件,它只有ListView。
答案 0 :(得分:1)
您正在向History_Date
ArrayAdapter
个对象
myList.add(history_date);
根据文件:
默认情况下,数组适配器通过调用toString()
来创建视图
因此,在getView()
期间,Android可能会尝试通过history_date.toString()
获取文字,如果您没有覆盖该方法,Android会返回您提到的文字:com.example.XXXX.XXX@7ae91f2
修复
在History_Date
课程中添加以下方法:
public class History_Date {
...
@Override
public String toString() {
return date;
}
}
答案 1 :(得分:0)
public class History_Date {
String date;
public History_Date(String date) {
this.date = date;
}
public History_Date(){
}
public String getDate() {
return date;
}
你的意思是这个数据库结构?对不起,我是这个新手