Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 Firebase没有';t更新查询_Android_Firebase_Firebase Realtime Database_Android Recyclerview_Firebaseui - Fatal编程技术网

Android Firebase没有';t更新查询

Android Firebase没有';t更新查询,android,firebase,firebase-realtime-database,android-recyclerview,firebaseui,Android,Firebase,Firebase Realtime Database,Android Recyclerview,Firebaseui,我有从数据库中检索数据的代码,并将其显示在我的recyclerview中,但我不知道如何更新查询以生成无休止的数据列表。我在很多帖子中搜索,但我是android和firebase的新手,这对我来说很复杂 scrolllistener中的toast只显示第一次(代码在该部分工作),而其他部分不显示,因为int页面更改了其值,而recyclerview不显示其他元素。 我希望你能帮助我,提前谢谢,为我的英语不好感到抱歉 public class FragmentPrincipal extends F

我有从数据库中检索数据的代码,并将其显示在我的recyclerview中,但我不知道如何更新查询以生成无休止的数据列表。我在很多帖子中搜索,但我是android和firebase的新手,这对我来说很复杂

scrolllistener中的toast只显示第一次(代码在该部分工作),而其他部分不显示,因为int页面更改了其值,而recyclerview不显示其他元素。 我希望你能帮助我,提前谢谢,为我的英语不好感到抱歉

public class FragmentPrincipal extends Fragment {
private RecyclerView recyclerView;
private DatabaseReference dReference, mReference;
private GridLayoutManager gridLayoutManager;
private FirebaseRecyclerAdapter<GuardarReview, ReviewViewHolder> firebaseRecyclerAdapter;
private int itemsPerPage = 6, page = 1;
private int visibleItemCount;
private boolean loading;
private Query query;

public FragmentPrincipal(){

}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    gridLayoutManager = new GridLayoutManager(getContext(), 2);
    recyclerView.setLayoutManager(gridLayoutManager);

    dReference = FirebaseDatabase.getInstance().getReference();

    mReference = dReference.child("Reviews");

    query = mReference.orderByChild("date").limitToFirst(page * itemsPerPage);

    firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<GuardarReview, ReviewViewHolder>
            (GuardarReview.class, R.layout.columna_reviews, ReviewViewHolder.class, query ) {
        @Override
        protected void populateViewHolder(ReviewViewHolder viewHolder, GuardarReview model, int position) {

            final String post_key = getRef(position).getKey();

            viewHolder.setTitle(model.titulo);
            viewHolder.setImage(getContext(), model.imagenURL);

            viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Intent intent = new Intent(getActivity(), VerReview.class);
                    intent.putExtra("review_id", post_key);
                    startActivity(intent);

                }
            });

        }
    };
    recyclerView.setAdapter(firebaseRecyclerAdapter);

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);

            if (dy >= 0) {

                if(!loading){

                    visibleItemCount = gridLayoutManager.getChildCount();

                    if(visibleItemCount >= (page * itemsPerPage)){

                        page++;
                        Toast.makeText(getContext(), "Fin de la lista", Toast.LENGTH_SHORT).show();
                        loading = true;

                        recyclerView.post(new Runnable() {
                            public void run() {
                                firebaseRecyclerAdapter.notifyDataSetChanged();
                            }
                        });

                    }
                }
                loading = false;
            }
        }
    });
}

@Override
public View onCreateView(LayoutInflater inflador, ViewGroup contenedor, Bundle savedInstanceState){

    View vista = inflador.inflate(R.layout.inicio_fragment, contenedor, false);
    recyclerView = (RecyclerView) vista.findViewById(R.id.recycler_view);
    recyclerView.setHasFixedSize(true);

    return vista;
}

public static class ReviewViewHolder extends RecyclerView.ViewHolder {
    View mView;

    public ReviewViewHolder(View itemView) {
        super(itemView);

        mView = itemView;
    }

    public void setTitle(String title){

        TextView review_titulo = (TextView) mView.findViewById(R.id.review_titulo);
        review_titulo.setText(title);

    }

    public void setImage(Context context, String imagenURL){

        ImageView review_imagen = (ImageView) mView.findViewById(R.id.review_imagen);
        Picasso.with(context).load(imagenURL).placeholder(R.drawable.loading3).into(review_imagen);

    }
}

@Override
public void onDestroy() {
    super.onDestroy();
    firebaseRecyclerAdapter.cleanup();
}
}
公共类FragmentPrincipal扩展了片段{
私人回收站;
专用数据库参考数据引用;
专用GridLayoutManager GridLayoutManager;
私人FirebaseRecyclerAdapter FirebaseRecyclerAdapter;
私有int itemsPerPage=6,page=1;
私有int visibleItemCount;
私有布尔加载;
私有查询;
公共碎片主体(){
}
@凌驾
ActivityCreated上的公共无效(@Nullable Bundle savedinStateCState){
super.onActivityCreated(savedInstanceState);
gridLayoutManager=新的gridLayoutManager(getContext(),2);
setLayoutManager(gridLayoutManager);
dReference=FirebaseDatabase.getInstance().getReference();
mrreference=dReference.child(“评论”);
query=mrreference.orderByChild(“日期”).limitToFirst(第*页,项目页面);
firebaseRecyclerAdapter=新的firebaseRecyclerAdapter
(GuardReview.class,R.layout.columna_reviews,ReviewViewHolder.class,查询){
@凌驾
受保护的void populateViewHolder(ReviewViewHolder viewHolder、GuardReview model、int位置){
最后一个字符串post_key=getRef(位置).getKey();
viewHolder.setTitle(型号:titulo);
setImage(getContext(),model.imagenURL);
viewHolder.mView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent Intent=新的Intent(getActivity(),VerReview.class);
intent.putExtra(“审查id”,发布密钥);
星触觉(意向);
}
});
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
recyclerView.addOnScrollListener(新的recyclerView.OnScrollListener(){
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
super.onScrolled(recyclerView、dx、dy);
如果(dy>=0){
如果(!加载){
visibleItemCount=gridLayoutManager.getChildCount();
如果(visibleItemCount>=(第页*itemsPerPage)){
page++;
Toast.makeText(getContext(),“Fin de la lista”,Toast.LENGTH_SHORT.show();
加载=真;
recyclerView.post(新的Runnable(){
公开募捐{
firebaseRecyclerAdapter.notifyDataSetChanged();
}
});
}
}
加载=假;
}
}
});
}
@凌驾
创建视图时的公共视图(LayoutFlater Inflator、ViewGroup Contendor、Bundle savedInstanceState){
视图视景=充气器充气(R.layout.inicio_fragment,contendor,false);
recyclerView=(recyclerView)vista.findViewById(R.id.recycler\u视图);
recyclerView.setHasFixedSize(true);
返回视野;
}
公共静态类ReviewViewHolder扩展了RecyclerView.ViewHolder{
视图视图;
公共审阅视图持有者(查看项目视图){
超级(项目视图);
mView=项目视图;
}
公共无效集合标题(字符串标题){
TextView review_titulo=(TextView)mView.findViewById(R.id.review_titulo);
审查titulo.setText(标题);
}
公共void setImage(上下文上下文,字符串imagenURL){
ImageView review\u imagen=(ImageView)mView.findViewById(R.id.review\u imagen);
毕加索.with(context).load(imagenURL).placeholder(R.drawable.loading3).into(review\u imagen);
}
}
@凌驾
公共空间{
super.ondestory();
firebaseRecyclerAdapter.cleanup();
}
}