gpt4 book ai didi

java - 是否可以颠倒 ListView 中的顺序?

转载 作者:行者123 更新时间:2023-12-02 09:50:33 27 4
gpt4 key购买 nike

当我从 Firebase 实时数据库获取数据时,它会自动按升序列出,但我试图获取放入数组列表中的值以相反的顺序而不是升序列出。

使用 ListView 时是否可以获得相反的值顺序?
目前使用的代码是:

    Query query = userRef.orderByChild("totalNumberOfSteps");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String username = ds.child("username").getValue(String.class);
long totalNumberOfSteps = ds.child("totalNumberOfSteps").getValue(Long.class);
Log.d(TAG , username + " - Steps: " + totalNumberOfSteps);
arrayList.add(new String(username + " - " + "steps: " + totalNumberOfSteps));

arrayAdapter = new ArrayAdapter<>(Leaderboard.this , android.R.layout.simple_list_item_1 , arrayList);

listView.setAdapter(arrayAdapter);
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG , databaseError.getMessage()); //Don't ignore errors!
}
};
query.addListenerForSingleValueEvent(valueEventListener);}}

此代码的当前输出是:

John Doe VI - Steps: 0
John Doe III - Steps: 0
John Doe V - Steps: 12
John Doe I - Steps: 79
John Doe IV - Steps: 88
John Doe II - Steps: 111

首选输出:

John Doe II - Steps: 111
John Doe IV - Steps: 88
John Doe I - Steps: 79
John Doe V - Steps: 12
John Doe III - Steps: 0
John Doe VI - Steps: 0

在代码中添加Collections.reverse(arrayList);时,输出为:

John Doe II - Steps: 111
John Doe IV - Steps: 88
John Doe III - Steps: 0
John Doe VI - Steps: 0
John Doe V - Steps: 12
John Doe I - Steps: 79

最佳答案

您可以在将 ArrayList 提供给 ArrayAdapter 之前反转它:

Collections.reverse(arrayList);

在您的情况下,复制arrayList,然后反转它并将其传递给 ArrayAdapter 的构造函数:

ArrayList<> tmpArr = new ArrayList<>(arrayList);
Collections.reverse(tmpArr);
arrayAdapter = new ArrayAdapter<>(Leaderboard.this , android.R.layout.simple_list_item_1 , tmpArr );

否则,每次调用 onDataChange() 时,arrayList 对象都会发生反转,并且其顺序会变得困惑。

关于java - 是否可以颠倒 ListView 中的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56347421/

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