我已经设置了一个firebase数据库,我想知道我是如何制作它的,以便我的ListVIEw以升序或降序显示我的数据.
例如:如果我想要的东西是最贵的,我会在ListVIEw的顶部和底部的便宜的东西.
基本上我正在尝试创建一个排名活动,其中我有两个单独的列表视图,按成本和单独计数排名.
这就是我的计算:
@OverrIDe protected voID onStart() { super.onStart(); itemLists=new ArrayList<String>(); databaseItems.child("items").addValueEventListener(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot itemSnapShot : dataSnapshot.getChildren()) { String itemname=itemSnapShot.child("itemname").getValue().toString(); itemLists.add(itemname); adapter = new ArrayAdapter(SearchActivity.this,androID.R.layout.simple_List_item_1,itemLists); ListFinalCount.setAdapter(adapter); } } @OverrIDe public voID onCancelled(DatabaseError databaseError) { } }); }
解决方法:
如果要订购Firebase数据库查询的结果,则需要使用数字作为值而不是字符串.如果你保留字符串,就像我在屏幕截图中看到的那样,你需要知道字符串按字典顺序排序,我确信这不是你想要的.
以升序或降序排序数据的最简单方法是在客户端.默认情况下,Firebase可以按给定属性按升序排序结果. Firebase中没有方法可以按降序排序,但可以进行一些调整.
如果您使用RecyclerVIEw显示数据,最简单的方法是使用以下代码:
linearlayoutmanager layoutManager = new linearlayoutmanager(getActivity());layoutManager.setReverseLayout(true);layoutManager.setStackFromEnd(true);recyclerVIEw.setLayoutManager(layoutManager);
这个approch将扭转您的订单.
另一种方法是创建自己的适配器,扩展Firebaselistadapter并覆盖getItem()方法.
另一种方法是从数据库中获取数据,将其添加到Collection,List将是一个很好的解决方案,然后使用Collections.reverse(yourList);.
总结以上是内存溢出为你收集整理的android – 如何按升序或降序排列firebase数据库数据?全部内容,希望文章能够帮你解决android – 如何按升序或降序排列firebase数据库数据?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)