FirebaseListAdapter 字母顺序

FirebaseListAdapter alphabetical order

在我的 Android 应用程序中,我有一个带有 FirebaseListAdapter 的 ListView 向我显示我的用户,现在我希望 firebaseListAdapter 按字母顺序排序。我怎样才能做到这一点?

代码:

mListView = (ListView) findViewById(R.id.listView);

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");

FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(
                        this,
                        String.class,
                        android.R.layout.simple_list_item_1,
                        databaseReference
                ){
                    @Override
                    protected void populateView(View v, String model, int position) {

                        TextView textView = (TextView) v.findViewById(android.R.id.text1);
                        textView.setText(model);

                    }
                };

mListView.setAdapter(firebaseListAdapter);

这取决于名字是什么。如果您将用户存储在他们的名字下(这样名字就是键):

FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(
    this,
    String.class,
    android.R.layout.simple_list_item_1,
    databaseReference.orderByKey()
){

但是,例如,如果您将 属性 的名称称为 "name",您将使用:

FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(
    this,
    String.class,
    android.R.layout.simple_list_item_1,
    databaseReference.orderByChild("name")
){

最后:如果您想按键的单个字符串值排序:

FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(
    this,
    String.class,
    android.R.layout.simple_list_item_1,
    databaseReference.orderByValue()
){

我找到了解决方案!

这是工作代码:

mListView = (ListView) findViewById(R.id.listView);

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");

FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(
                        this,
                        String.class,
                        android.R.layout.simple_list_item_1,
                        databaseReference.orderByValue()
                ){
                    @Override
                    protected void populateView(View v, String model, int position) {

                        TextView textView = (TextView) v.findViewById(android.R.id.text1);
                        textView.setText(model);

                    }
                };

mListView.setAdapter(firebaseListAdapter);