我无法使用自定义适配器从firebase检索数据。我的列表视图显示空标签。 Empty listview tabs
我的firebase包含数据Firebase information
我的应用程序的工作原理是,在第一个活动页面中,它会在第二个活动页面检索该信息时上传信息。上传部分没有问题,但下载信息并将其放入列表视图会出现空标签问题。
我的自定义适配器:
private Activity context;
private List<patientinfo> patientinfoList;
public PatientlistAdapter(Activity context, List<patientinfo> patientinfoList){
super(context, R.layout.patientlist_detail, patientinfoList);
this.context = context;
this.patientinfoList = patientinfoList;
}
@Override
public int getCount() {
return patientinfoList.size();
}
@Override
public patientinfo getItem(int position) {
return patientinfoList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View listViewItem = inflater.inflate(R.layout.patientlist_detail,null,true);
TextView qnTV = (TextView) listViewItem.findViewById(R.id.qnTV);
TextView appointmenttimeTV = (TextView) listViewItem.findViewById(R.id.appointmenttimeTV);
TextView descriptionTV = (TextView) listViewItem.findViewById(R.id.descriptionTV);
patientinfo patientinfo1 = patientinfoList.get(position);
qnTV.setText(patientinfo1.getqueuenumber());
appointmenttimeTV.setText(patientinfo1.getappointmenttime());
descriptionTV.setText(patientinfo1.getpatientinitials());
return listViewItem;
}
我的清单:
public class patientinfo {
String queuenumber,appointmenttime,patientinitials;
public String getqueuenumber() { return queuenumber; }
public String getappointmenttime() {
return appointmenttime;
}
public String getpatientinitials() {
return patientinitials;
}
}
很抱歉,如果主题令人困惑,因为我是业余爱好者,几乎没有背景经验/知识。我是通过关注YouTube视频了解到的。请帮助我任何人?
答案 0 :(得分:0)
在OsmDroid: IOException downloading MapTile: /3/1/7 : java.net.MalformedURLException: no protocol: http%3A%2F%2F%7Bs%7D.tile.openstreetmap.org%2F%7Bz%7D%2F%7Bx%7D%2F%7By%7D.png
中移除onStart()
内的clear()
并添加到收听者上方:
onDataChange
添加上面的 patientinfoList.clear();
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot patientsnapshot: dataSnapshot.getChildren()){
patientinfo patientinfo = patientsnapshot.getValue(patientinfo.class);
patientinfoList.add(patientinfo);
}
以防止clear()
执行时出现重复数据。另外在onDataChange中添加onStart()
将导致空listview
编辑:
clear()
答案 1 :(得分:0)
试试吧。
PatientlistAdapter adapter = new PatientlistAdapter(pharmacy01main.this, patientinfoList);
patientlistview.setAdapter(adapter);
adapter.notifyDataSetChanged();
总之,您可以尝试添加notifyDataSetChanged();
我觉得你的代码很奇怪。如果你遇到同样的问题,你能告诉我firebase数据库结构吗?
答案 2 :(得分:0)
在此之后添加这些行 - :
PatientlistAdapter adapter = new PatientlistAdapter(pharmacy01main.this, patientinfoList);
patientlistview.setAdapter(adapter);
if(adapter!=null)
adapter.notifyDataSetChanged();
答案 3 :(得分:0)
我遇到了同样的问题,我的列表视图显示了一个空的卡片视图列表,这个错误很愚蠢。如果有人遇到相同的问题,请确保该类的属性名称(例如,此处的Patientinfo)和您从中检索其值的节点的名称应相同。 例如,在将值推入数据库时,Firebase中子节点“约会时间”的名称应更改为“约会时间”,因为在Patientinfo类中是这样拼写的。 希望对您有所帮助。