如何解决如何在firebaserecyclerAdapter中对我的产品项目进行排序
我正在尝试使用不同的过滤器对数据(产品)进行排序,例如按字母顺序,按价格排序,按日期排序。
数据是从Firebase实时数据库的“节点”中获取的:
我已经使用过 orderByChild 方法,但是问题是它过滤数据而不是排序数据。
//recycelrView Setup for Product Listing
gridLayoutManager_categ = new GridLayoutManager(this,2);
rv_categ.setLayoutManager(gridLayoutManager_categ);
rv_categ.setHasFixedSize(true);
//FirebaseRecyclerAdapter for fetching data from firebase and showing it into recylerview
databaseReference = FirebaseDatabase.getInstance().getReference().child("Products").child(rootText);
categ_options = new FirebaseRecyclerOptions.Builder<Products>().setQuery(databaseReference,Products.class).build();
categ_Adapter = new FirebaseRecyclerAdapter<Products,MyViewHolder_categAdapter>(categ_options) {
@Override
protected void onBindViewHolder(@NonNull final MyViewHolder_categAdapter Holder,int i,@NonNull final Products products) {
}
@NonNull
@Override
public MyViewHolder_categAdapter onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.product_layout,parent,false);
return new MyViewHolder_categAdapter(view);
}
};
categ_Adapter.startListening();
rv_categ.setAdapter(categ_Adapter);
}
如果在这种情况下是不可能的,那么请建议我使用其他任何方法来展示我的产品。 (例如使用其他任何数据库或方法等)
解决方法
如果databaseReference
指向屏幕快照中的Ghee
节点,您将获得一个查询,该查询使用以下命令对子节点的productPrice
值进行排序:
Query query = databaReference.orderByChild("productPrice");
然后您可以将查询传递给适配器选项:
categ_options = new FirebaseRecyclerOptions.Builder<Products>().setQuery(query,Products.class).build();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。