Сортировка Recyclerview

Привет, ребята. Как бы я мог отсортировать представление о переработчике по данным, которые находятся в определенном текстовом представлении, которое находится внутри каждого элемента внутри просмотра? Я также хотел бы знать, как добавить заголовок к каждому элементу, который отличается в данных. то есть.

Я сортирую, пытаясь отсортировать по дате, и я хочу, чтобы все даты xyz были сгруппированы под одним заголовком, а даты 123 сгруппированы под другим заголовком. Это возможно, спасибо.

Я покажу свой адаптер, если вам нужна другая информация, просто прокомментируйте это. Приветствия.

Вот код, который указан в фрагменте, в котором находится обзор переработчика.

 mAdapter = new RecyclerViewAdapterTransactions(getActivity(), account, amount, incomeExpense, type, date, category, uid, description);
             ((RecyclerViewAdapterTransactions) mAdapter).setMode(Attributes.Mode.Single);
             recyclerView.setHasFixedSize(true);
             recyclerView.setAdapter(mAdapter);

Адаптер RecyclerViewAdapterTransactions:

    public class RecyclerViewAdapterTransactions extends RecyclerSwipeAdapter<RecyclerViewAdapterTransactions.SimpleViewHolder>{

   public static class SimpleViewHolder extends RecyclerView.ViewHolder {

      SwipeLayout swipeLayout;
      ImageButton buttonDelete;
      ImageButton buttonEdit;

      TextView textViewAccount;
      TextView textViewAmount;
      TextView textViewIncomeExpense;
      TextView textViewDate;
      TextView textViewUID;
      TextView textViewCategory;
      TextView textViewDescription;
      TextView textViewType;

      public SimpleViewHolder(View itemView) {
         super(itemView);
         swipeLayout = (SwipeLayout) itemView.findViewById(R.id.swipeLayoutTransactions);
         buttonDelete = (ImageButton) itemView.findViewById(R.id.imageButtonTransactionDelete);
         buttonEdit = (ImageButton) itemView.findViewById(R.id.imageButtonTransactionEdit);

         textViewAmount = (TextView) itemView.findViewById(R.id.textViewAmount);
         textViewAccount = (TextView) itemView.findViewById(R.id.textViewAccount);
         textViewIncomeExpense = (TextView) itemView.findViewById(R.id.textViewIncomeExpense);
         textViewType = (TextView) itemView.findViewById(textViewTransactionType);
         textViewDate = (TextView) itemView.findViewById(R.id.textViewDateOfTransaction);
         textViewCategory = (TextView) itemView.findViewById(R.id.textViewCategory);
         textViewUID = (TextView) itemView.findViewById(R.id.id);
         textViewDescription = (TextView) itemView.findViewById(R.id.textViewDescription);


      }
   }

   private Context mContext;
   private ArrayList<String> account;
   private ArrayList<String> amount;
   private ArrayList<String> incomeExpense;
   private ArrayList<String> type;
   private ArrayList<String> date;
   private ArrayList<String> category;
   private ArrayList<String> uid;
   private ArrayList<String> description;


   public RecyclerViewAdapterTransactions(Context context, ArrayList<String> account, ArrayList<String> amount, ArrayList<String> incomeExpense, ArrayList<String> type, ArrayList<String> date, ArrayList<String> category, ArrayList<String> uid, ArrayList<String> description) {
      this.mContext = context;
      this.account = account;
      this.amount = amount;
      this.incomeExpense = incomeExpense;
      this.type = type;
      this.date = date;
      this.category = category;
      this.uid = uid;
      this.description = description;
   }



   @Override
   public SimpleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_transactions, parent, false);
      return new SimpleViewHolder(view);
   }


   @Override
   public void onBindViewHolder(final SimpleViewHolder viewHolder, final int position) {

      String itemAccount = account.get(position);
      String itemAmount = amount.get(position);
      String itemIncomeExpense = incomeExpense.get(position);
      String itemType = type.get(position);
      String itemDate = date.get(position);
      String itemCategory = category.get(position);
      String itemDescription = description.get(position);
      final String itemID = uid.get(position);

      viewHolder.swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown);

      viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
            mItemManger.removeShownLayouts(viewHolder.swipeLayout);
            account.remove(position);
            amount.remove(position);
            incomeExpense.remove(position);
            type.remove(position);
            date.remove(position);
            category.remove(position);
            uid.remove(position);
            description.remove(position);
            notifyItemRemoved(position);
            notifyItemRangeChanged(position, account.size());
            mItemManger.closeAllItems();

            TransactionsDatabase transactionsDatabase = new TransactionsDatabase(mContext);
            transactionsDatabase.open();
            transactionsDatabase.deleteEntry(itemID);
            transactionsDatabase.close();

         }
      });

      viewHolder.buttonEdit.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {

            Intent intent = new Intent();
            intent.setClass(mContext, EditTransaction.class);

            intent.putExtra("account", account.get(position));//
            intent.putExtra("amount", amount.get(position));//
            intent.putExtra("incomeExpense", incomeExpense.get(position));//
            intent.putExtra("type", type.get(position));//
            intent.putExtra("date", date.get(position));//
            intent.putExtra("category", category.get(position));//
            intent.putExtra("uid", uid.get(position));
            intent.putExtra("description", description.get(position));//
            mContext.startActivity(intent);


         }
      });


      Typeface robotoTypeFace = Typeface.createFromAsset(mContext.getAssets(), "fonts/Roboto-Thin.ttf");
      viewHolder.textViewAccount.setText(itemAccount);
      viewHolder.textViewAmount.setText(itemAmount);
      viewHolder.textViewIncomeExpense.setText(itemIncomeExpense);
      viewHolder.textViewType.setText(itemType);
      viewHolder.textViewDate.setText(itemDate);
      viewHolder.textViewCategory.setText(itemCategory);
      viewHolder.textViewUID.setText(itemID);
      viewHolder.textViewDescription.setText(itemDescription);

      viewHolder.textViewAccount.setTypeface(robotoTypeFace);
      viewHolder.textViewAmount.setTypeface(robotoTypeFace);
      viewHolder.textViewIncomeExpense.setTypeface(robotoTypeFace);
      viewHolder.textViewType.setTypeface(robotoTypeFace);
      viewHolder.textViewDate.setTypeface(robotoTypeFace);
      viewHolder.textViewCategory.setTypeface(robotoTypeFace);
      viewHolder.textViewUID.setTypeface(robotoTypeFace);
      viewHolder.textViewDescription.setTypeface(robotoTypeFace);

      mItemManger.bindView(viewHolder.itemView, position);
   }

   @Override
   public int getItemCount() {
      return uid.size();
   }

   @Override
   public int getSwipeLayoutResourceId(int position) {
      return R.id.swipeLayoutTransactions;
   }

}

Ответы на вопрос(2)

Ваш ответ на вопрос