Firebase将数据检索到列表视图中,但显示空标签

时间:2018-01-08 09:22:03

标签: android listview firebase firebase-realtime-database

我无法使用自定义适配器从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视频了解到的。请帮助我任何人?

4 个答案:

答案 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类中是这样拼写的。 希望对您有所帮助。