我正在使用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
提交
取消