вот мои коды:
private RecyclerView recycleRank;
private LinearLayoutManager layManRank;
private FirebaseRecyclerAdapter<Word, RankingActivity.RankingViewHolder> recAdapterRank;
...
DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference("Word");
Query personsQuery = personsRef.orderByChild("count");
recycleRank.hasFixedSize();
layManRank = new LinearLayoutManager(this);
layManRank.setReverseLayout(true);
layManRank.setStackFromEnd(true);
recycleRank.setLayoutManager(layManRank);
Так что при .setReverseLayout
счетчик отображается в порядке убывания.Без этого он начинается с наименьшего числа и опускается до самого высокого.Но все должно быть наоборот.
recAdapterRank = new FirebaseRecyclerAdapter<Word, RankingViewHolder>(personsOptions) {
@Override
protected void onBindViewHolder(RankingActivity.RankingViewHolder holder, final int position, final Word model) {
holder.setWord(model.getWord());
long score = model.getCount();
holder.setScore(String.valueOf(score));
holder.setRank(String.valueOf(holder.getAdapterPosition()));
}
holder.setRank(String.valueOf(holder.getAdapterPosition()));
Здесь соответствующее число выводится в рейтинге.
Таким образом, действие должно выглядеть следующим образом
# Word Score
1 Tree 12
2 Wood 9
Но в моем случае, поскольку список перевернут, нумерация начинается с наибольшего числа и продолжается до 0.
Как я могу справиться с этим?Мне нужен Int Array или что-то в этом роде?И как можно сделать рейтинг длиной всего 100 слов?На данный момент в рейтинге присутствуют все слова из базы данных.
Спасибо, ребята