Tee*_*Kay 3 android android-adapter firebase firebase-realtime-database firebaseui
我创建了一个工作正常的适配器。现在,我需要计算适配器中数据项的数量。我正在使用函数getItemcount(),但每次都得到0。另外,我正在使用Firebase处理我的数据库。
final Firebase mRoot = new Firebase(FIREBASE_URL);
mPosts= mRoot.child("posts");
rvPosts.setHasFixedSize(true); //for performance improvement
rvPosts.setLayoutManager(new LinearLayoutManager(this)); //for vertical list
postAdapter = new FirebaseRecyclerAdapter<Hello, PostViewHolder>(Hello.class, R.layout.view_hello, PostViewHolder.class, mPosts.orderByChild("postedBy")) {
@Override
protected void populateViewHolder(final PostViewHolder postViewHolder, final Hello hello, int i) {
//do something
}
};
rvPosts.setAdapter(postAdapter);
int postForSelect = postAdapter.getItemCount();
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
在FirebaseRecyclerAdapter异步从数据库到您的应用程序的数据同步。当您打印项目数时,尚未同步任何数据。
要知道适配器中的数据何时更改,可以注册一个AdapterDataObserver。例如,在I / O的“零到应用”对话中,我们使用此代码段来确保最新的聊天消息始终可见:
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
public void onItemRangeInserted(int positionStart, int itemCount) {
messagesList.smoothScrollToPosition(adapter.getItemCount());
}
});
Run Code Online (Sandbox Code Playgroud)
小智 0
请检查您的 getItemCountMethod 并参考您在适配器中使用的列表的大小
@Override
public int getItemCount() {
return list.size();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3047 次 |
| 最近记录: |