Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android studio中使用firebase使帖子部分加载并缓存帖子?_Android_Firebase_Firebase Realtime Database_Firebaseui - Fatal编程技术网

如何在Android studio中使用firebase使帖子部分加载并缓存帖子?

如何在Android studio中使用firebase使帖子部分加载并缓存帖子?,android,firebase,firebase-realtime-database,firebaseui,Android,Firebase,Firebase Realtime Database,Firebaseui,我用FirebaseRecyciclerView制作了一个新闻提要,但问题是它们一次加载所有内容,而且滚动速度非常慢和滞后。我想添加部分加载和缓存。像Facebook、Twitter、Instagram等,我尝试过截击,但我想不出来。有谁能告诉我什么是解决我问题的最好方法吗 我试过这个答案,但没有结果 private void DisplayAllUsersPosts() { 查询SortPostsInDescendingOrder=PostsRef.orderByChild(“计数器”);

我用FirebaseRecyciclerView制作了一个新闻提要,但问题是它们一次加载所有内容,而且滚动速度非常慢和滞后。我想添加部分加载和缓存。像Facebook、Twitter、Instagram等,我尝试过截击,但我想不出来。有谁能告诉我什么是解决我问题的最好方法吗

我试过这个答案,但没有结果

private void DisplayAllUsersPosts()
{
查询SortPostsInDescendingOrder=PostsRef.orderByChild(“计数器”);
FirebaseRecyclerAdapter FirebaseRecyclerAdapter=
新型FirebaseRecyclerAdapter
(
Posts.class,
R.布局。所有_柱_布局,
PostsViewHolder.class,
排序桩下降顺序
)
{
@凌驾
受保护的void populateViewHolder(PostsViewHolder视图持有人、Posts模型、int位置)
{
最后一个字符串PostKey=getRef(position).getKey();
setFullname(model.getFullname());
setTime(model.getTime());
setDate(model.getDate());
viewHolder.setDescription(model.getDescription());
viewHolder.setUser\u thumb\u image(getApplicationContext(),model.getUser\u thumb\u image());
setPostimage(getApplicationContext(),model.getPostimage());
viewHolder.setLikeButtonStatus(PostKey);
viewHolder.mView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
意向ClickPostContent=新意向(MainActivity.this,ClickPostActivity.class);
单击PostContent.putExtra(“PostKey”,PostKey);
开始触觉(点击内容);
}
});
viewHolder.CommentPostButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent commentsinent=新意图(MainActivity.this、CommentsActivity.class);
commentsinent.putExtra(“PostKey”,PostKey);
起始触觉(注释);
}
});
viewHolder.LikePostButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
LikeChecker=true;
像ref.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
如果(LikeChecker.equals(true)){
if(dataSnapshot.child(PostKey).hasChild(currentUserID)){
比如ref.child(PostKey).child(currentUserID).removeValue();
LikeChecker=false;
}否则{
LikesRef.child(PostKey).child(currentUserID).setValue(true);
LikeChecker=false;
}
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
}
});
}
};
setAdapter(firebaseRecyclerAdapter);
}

尝试实现分页。请参阅是否有更简单的方法来实现分页,而无需进行太多更改?
private void DisplayAllUsersPosts()
{
    Query SortPostsInDescendingOrder = PostsRef.orderByChild("counter");

    FirebaseRecyclerAdapter<Posts, PostsViewHolder> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<Posts, PostsViewHolder>
                    (
                            Posts.class,
                            R.layout.all_posts_layout,
                            PostsViewHolder.class,
                            SortPostsInDescendingOrder
                    )
            {
                @Override
                protected void populateViewHolder(PostsViewHolder viewHolder, Posts model, int position)
                {
                    final String PostKey = getRef(position).getKey();

                    viewHolder.setFullname(model.getFullname());
                    viewHolder.setTime(model.getTime());
                    viewHolder.setDate(model.getDate());
                    viewHolder.setDescription(model.getDescription());
                    viewHolder.setUser_thumb_image(getApplicationContext(), model.getUser_thumb_image());
                    viewHolder.setPostimage(getApplicationContext(), model.getPostimage());

                    viewHolder.setLikeButtonStatus(PostKey);

                    viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Intent clickPostIntent = new Intent(MainActivity.this, ClickPostActivity.class);
                            clickPostIntent.putExtra("PostKey", PostKey);
                            startActivity(clickPostIntent);
                        }
                    });

                    viewHolder.CommentPostButton.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Intent commentsIntent = new Intent(MainActivity.this, CommentsActivity.class);
                            commentsIntent.putExtra("PostKey", PostKey);
                            startActivity(commentsIntent);
                        }
                    });

                    viewHolder.LikePostButton.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            LikeChecker = true;

                            LikesRef.addValueEventListener(new ValueEventListener() {
                                @Override
                                public void onDataChange(DataSnapshot dataSnapshot) {
                                    if(LikeChecker.equals(true)){
                                        if(dataSnapshot.child(PostKey).hasChild(currentUserID)){
                                            LikesRef.child(PostKey).child(currentUserID).removeValue();
                                            LikeChecker = false;
                                        }else{
                                            LikesRef.child(PostKey).child(currentUserID).setValue(true);
                                            LikeChecker = false;
                                        }
                                    }
                                }

                                @Override
                                public void onCancelled(DatabaseError databaseError) {

                                }
                            });
                        }
                    });
                }
            };
    postList.setAdapter(firebaseRecyclerAdapter);
}