gpt4 book ai didi

android - 如何按升序或降序排列firebase数据库数据?

转载 作者:行者123 更新时间:2023-12-01 16:46:17 25 4
gpt4 key购买 nike

我已经设置了一个 firebase 数据库,我想知道如何制作它以便我的 listView 按升序或降序显示我的数据。

例如:如果我想要最贵的东西,我会把它放在 listView 的顶部,而更便宜的放在底部。

基本上,我正在尝试创建一个排名 Activity ,其中有两个单独的 ListView ,它们按成本排名并单独计数。

Here's my database:

这是我所统计的:

  @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);

此方法将颠倒您的顺序。

另一种方法是创建您自己的适配器来扩展 FirebaseListAdapter 并重写 getItem() 方法。

另一种方法是从数据库获取数据,将其添加到Collection中,List将是一个很好的解决方案,然后使用Collections。反向(yourList);

关于android - 如何按升序或降序排列firebase数据库数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61770990/

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