我想知道如何发现FirestoreRecyclerAdapter
仅为空。通过下面的代码,我可以发现它是否包含一个或多个实例,但是当它里面没有对象时,它不会确切告诉我。验证if(adapter.getItemCount == 0)
每次都会显示,因为适配器每次都会通过0计数,因此显然此功能不起作用。
那么如何发现它是否完全空了?
这是我的代码:
Query query = spotsCollection.whereEqualTo("cityId", cityId).limit(5);
FirestoreRecyclerOptions<Spots> options = new FirestoreRecyclerOptions.Builder<Spots>()
.setQuery(query, Spots.class)
.build();
FirestoreRecyclerAdapter<Spots, SpotViewHolder> adapter = new FirestoreRecyclerAdapter<Spots, SpotViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull SpotViewHolder spotViewHolder, int i, @NonNull Spots spots) {
if(i > 3)
// Do something with i > 3
}
@NonNull
@Override
public SpotViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(getContext()).inflate(R.layout.recycler_app_spots, parent, false);
return new SpotViewHolder(view);
}
};
if(adapter.getItemCount() == 0)
Toast.makeText(getContext(), "Empty", Toast.LENGTH_SHORT).show();
答案 0 :(得分:1)
覆盖onDataChanged()并检入
FirestoreRecyclerAdapter<Spots, SpotViewHolder> adapter = new FirestoreRecyclerAdapter<Spots, SpotViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull SpotViewHolder spotViewHolder, int i, @NonNull Spots spots) {
//...
}
@NonNull
@Override
public SpotViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//...
}
// Add this
@Override
public void onDataChanged() {
// do your thing
if(getItemCount() == 0)
Toast.makeText(getContext(), "Empty", Toast.LENGTH_SHORT).show();
}
};