som*_*lse 3 android firebase firebase-realtime-database
我已经设置了一个 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) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
如果要对 Firebase 数据库查询的结果进行排序,则需要使用数字作为值而不是字符串。如果您保留字符串,正如我在屏幕截图中看到的那样,您需要知道字符串是有序的lexicographically,我确定这不是您要查找的内容。
按升序或降序对数据进行排序的最简单方法是在客户端。默认情况下,Firebase 可以按给定属性按升序对结果进行排序。Firebase 中没有按降序排序的方法,但可以进行一些调整。
如果您使用 aRecyclerView来显示数据,最简单的方法是使用以下代码:
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
Run Code Online (Sandbox Code Playgroud)
此方法将颠倒您的顺序。
另一种方法是创建您自己的扩展FirebaseListAdapter和覆盖getItem()方法的适配器。
另一种方法是从数据库中获取数据,将其添加到 a 中Collection,aList是一个很好的解决方案,然后使用Collections.reverse(yourList);.
| 归档时间: |
|
| 查看次数: |
3677 次 |
| 最近记录: |