Как отсортировать RecyclerView на основе некоторого значения int, хранящегося в списке переработчиков

#android #android-recyclerview

#Android #android-recyclerview

Вопрос:

Я хочу, чтобы список переработчиков сортировался по возрастанию или убыванию на основе значения randomNum в нем. Я не знаю, как сортировать список переработчиков локально. Список переработчиков заполняется на основе данных Firestore, поэтому его сложно сортировать, как и другие методы, доступные в Интернете, и я новичок в программировании на Java, поэтому буду признателен за любую помощь. Все данные в RecyclerView поступают из Firestore. Мой код ниже —-

 CollectionReference collectionReference = db.collection("products");
Query resultQuery = collectionReference.whereEqualTo("name", "xyz");

FirestoreRecyclerOptions<ProductModel> resultOptions = new FirestoreRecyclerOptions.Builder<ProductModel>().setQuery(resultQuery, ProductModel.class).build();

    FirestoreRecyclerAdapter resultAdapter = new FirestoreRecyclerAdapter<ProductModel, ProductViewHolder>(resultOptions) {
        @NonNull
        @Override
        public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.product_card, parent, false);
            return new ProductViewHolder(view);
        }

        @Override
        protected void onBindViewHolder(@NonNull final ProductViewHolder holder, int position, @NonNull ProductModel model) {
           
            holder.name.setText(model.getName());
            holder.price.setText(model.getPrice());
            Random random = new Random();
            randomNum = random.nextInt(1000);
        }
    };
    resultAdapter.startListening();
    productList.setHasFixedSize(true);
    productList.setLayoutManager(new LinearLayoutManager(this));
    productList.setAdapter(resultAdapter);
}

private class ProductViewHolder extends RecyclerView.ViewHolder {
    private TextView name, price;
    private int randomNum;
    

    public ProductViewHolder(@NonNull View itemView) {
        super(itemView);

        name = itemView.findViewById(R.id.product_name);
        price = itemView.findViewById(R.id.product_price); 
    }
}
 

Комментарии:

1. вы имеете в виду, что хотите в основном перетасовать свой запрос?

2. @MehranBehbahani Я хочу отсортировать результат запроса на основе случайного числа, от наибольшего числа к наименьшему или наоборот.

3. чем это отличается от перетасовки?