gpt4 book ai didi

android - 适配器上的 getItemCount() 返回 0

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:28 32 4
gpt4 key购买 nike

我创建了一个工作正常的适配器。现在,我需要计算适配器中数据项的数量。我正在使用函数 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();

可能是什么问题?

最佳答案

FirebaseRecyclerAdapter 将数据从数据库异步同步到您的应用程序。当您打印项目数量时,尚未同步任何数据。

要知道适配器中的数据何时发生变化,您可以注册一个AdapterDataObserver。例如在我们的 Zero to App talk at I/O , 我们使用了 this snippet确保最新的聊天消息始终可见:

    adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
public void onItemRangeInserted(int positionStart, int itemCount) {
messagesList.smoothScrollToPosition(adapter.getItemCount());
}
});

我强烈建议您查看 full code for that minimal app .

关于android - 适配器上的 getItemCount() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37937497/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com