我有一个ListView
,我想按项目的特定数据库值对项目进行排序。该值也将出现在项目中。这不会是一次性排序。我的意思是,每次创建活动时,它将进行排序。我正在使用适配器。
我已经检查了每个类似的问题,但是找不到合适的解决方案。
有办法吗?预先非常感谢。
这是用于排序的值的Firebase数据库参考:
mLobbyDatabaseRef = mLobbyDatabase.getReference().child("usersDatabase/" + uid + "/" + "lobbyDatabase/" + otherUid + "/");
DatabaseReference mLobbyDatabaseKeyRef = mLobbyDatabaseRef.child("lobbyKey");
mLobbyDatabaseKeyRef.setValue(itemKey);
itemKey将是使用排序的值。 也可以从项目中访问它。
<TextView
android:id="@+id/lobby_key_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text=""
android:textColor="@android:color/transparent"
android:textSize="8sp"/>
答案 0 :(得分:0)
您正在寻找类似这样的东西吗?请注意,它具有利用Collections
类和setAdapter()
方法的升序或降序排序的选项。
private ListView lv;
private static ArrayList<String> itemKey = new ArrayList<>();
private void sortData(boolean asc)
{
if (asc)
Collections.sort(itemKey);
else
Collections.reverse(itemKey);
lv.setAdapter(new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, itemKey));
}
如果Collections
类和ArrayList
不起作用,并且如果您引用的是类似FirebaseListAdapter
的适配器,则尝试使用{{1} }升序排序的方法:
orderByChild()