3 回答
TA贡献1963条经验 获得超6个赞
如果您试图将counter
变量作为全局变量并在回调之外使用它,那将始终是null
因为正如@Vinnie 在他的回答中提到的那样,数据尚未完成加载。真正发生的事情是您试图从数据库中获取数据并立即使用它,而counter
变量的初始值为0
. 然后,当从数据库中获取数据完成时,它会更改计数器的值,但不会再次读取。为了解决这个问题,getItemCount()
在你的适配器类中使用你的方法的结果将它的值设置为TextView
.
TA贡献1806条经验 获得超8个赞
如果您想获取您的 recyclerView 列表,只需在您的 recyclerView 适配器中创建一个静态方法,然后在其中返回您的列表。
例如:
public static List<modelOfYourList> getCount(){
return yourAdapterList;
}
TA贡献2080条经验 获得超4个赞
也许在你的AttendanceAdapter课堂上添加这样的东西?
我看了一下FirestoreRecyclerOptions类,它公开了一个getSnapshots()方法。这将返回 a ObservableSnapshotArray,而后者又从 扩展而来Base ObservableSnapshotArray,它公开了一个size()方法。
class AttendanceAdapter extends FirestoreRecyclerAdapter<Attendance, AttendanceAdapter.AttendanceHolder>{
{
private FirestoreRecyclerOptions<Attendance> options;
public AttendanceAdapter(@NonNull FirestoreRecyclerOptions<Attendance> options)
{
super(options);
this.options = options;
}
@Override
public int getItemCount()
{
final int count = options.getSnapshots() != null
? options.getSnapshots().size()
: 0;
return count;
}
添加回答
举报