我正在使用FirebaseListAdapter它ListView,它工作得很好。我有一个额外的要求来显示ListView. 我怎么做?我通读了文档FirebaseListAdapter,发现有一个方法getCount()应该返回元素的计数。但它总是返回零。下面是我的代码。我缺少什么? mAppointmentAdapter = new FirebaseListAdapter<Appointment>(options) { @Override public void populateView(View view, Appointment appointment, int position) { TextView nameTextView = view.findViewById(R.id.app_patient_name_view); TextView reasonTextView = ... } }; appointmentListView.setAdapter(mAppointmentAdapter); // Display count of appointments int mAppointmentsCount; mAppointmentsCount = mAppointmentAdapter.getCount(); mAppointmentsCountView.setText(String.valueOf(mAppointmentsCount));ListView需要适配器或适配器中的元素计数。
1 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
我认为亚历克斯在这里有正确的想法:当您调用 时,很可能尚未从数据库加载项目mAppointmentAdapter.getCount()
,因此它正确返回0
。
populateView
正如 Alex 所说,该调用可能应该在内部,或者在适配器的onDataChanged
方法中。每当 FirebaseUI 更新数据时都会onDataChanged
调用 ,因此这是更新计数器的完美位置:
@Override
public void onDataChanged() {
int mAppointmentsCount = mAppointmentAdapter.getCount();
mAppointmentsCountView.setText(String.valueOf(mAppointmentsCount));
}
如果这些知识不允许您解决问题,请编辑您的问题以显示该调用存在的时间/地点mAppointmentAdapter.getCount(),因为这使我们更有可能提供帮助。
添加回答
举报
0/150
提交
取消