Как перевернуть список, прежде чем добавить в recyclerПросмотреть адаптер в Android - PullRequest
0 голосов
/ 12 ноября 2018

В моем приложении я хочу использовать recyclerView для отображения некоторых данных с сервера.

Мой список:

item1, item2, item3, item4, item5

item1 - самый старый и item5 - самый новый .
Я хочу первый элемент сортировки, такой какitem5, item4, item3, item2, item1 затем добавьте в adapter.

item1 - самый старый и item5 - новейший .
Я хочу сначала отсортировать элемент, например item5, item4, item3, item2, item1, затем добавить в adapter.

Я заполняю данные адаптера этим кодом в OnResponse при модернизации:

//Comments
if (postResponse.getCommentCount() == 0) {
    detailPage_commentsSellAll.setVisibility(View.GONE);
    detailPage_commentEmpty.setVisibility(View.VISIBLE);
    detailPage_commentList.setVisibility(View.GONE);
} else {
    detailPage_commentsSellAll.setVisibility(View.VISIBLE);
    detailPage_commentEmpty.setVisibility(View.GONE);
    detailPage_commentList.setVisibility(View.VISIBLE);
    detailPage_commentsTitle.setText(getString(R.string.comments) + " (" + postResponse.getCommentCount() + ")");
    commentsModel.clear();
    commentsModel.addAll(postResponse.getComments());
    commentAdapter.notifyDataSetChanged();
}

Мои коды адаптеров:

public class DetailCommentAdapter extends RecyclerView.Adapter<DetailCommentAdapter.ViewHolder> {

    private List<CommentsItem> model;
    private Context context;

    public DetailCommentAdapter(List<CommentsItem> model) {
        this.model = model;
    }

    @Override
    public DetailCommentAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.detail_comment_row, viewGroup, false);
        context = viewGroup.getContext();
        return new DetailCommentAdapter.ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final DetailCommentAdapter.ViewHolder viewHolder, int position) {
        int newPos = model.size() - 1;
        //Image
        if (!TextUtils.isEmpty(model.get(newPos).getUrl())) {
            Glide.with(context)
                    .asBitmap()
                    .load(model.get(position).getUrl())
                    .into(new BitmapImageViewTarget(viewHolder.detailCmRow_img) {
                        @Override
                        protected void setResource(Bitmap resource) {
                            RoundedBitmapDrawable circularBitmapDrawable =
                                    RoundedBitmapDrawableFactory.create(context.getResources(), resource);
                            circularBitmapDrawable.setCircular(true);
                            viewHolder.detailCmRow_img.setImageDrawable(circularBitmapDrawable);
                        }
                    });
        } else {
            viewHolder.detailCmRow_img.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.default_avatar));
        }
        //Name
        viewHolder.detailCmRow_name.setText(model.get(newPos).getName());
        //Date
        viewHolder.detailCmRow_date.setText(model.get(newPos).getDate());
        //Comment
        viewHolder.detailCmRow_comment.setText(Html.fromHtml(model.get(newPos).getContent()));
    }

    @Override
    public int getItemCount() {
        return 1;
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        @BindView(R.id.detailCmRow_img)
        ImageView detailCmRow_img;
        @BindView(R.id.detailCmRow_name)
        TextView detailCmRow_name;
        @BindView(R.id.detailCmRow_date)
        TextView detailCmRow_date;
        @BindView(R.id.detailCmRow_comment)
        TextView detailCmRow_comment;

        public ViewHolder(View view) {
            super(view);
            ButterKnife.bind(this, view);
        }
    }
}

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы можете использовать reverse() метод из Collections

Collections.reverse(your_list);
your_recyclerview.setAdapter(your_list);
0 голосов
/ 12 ноября 2018

Вы можете использовать это, чтобы перевернуть список, в котором вы установили адаптер

Collections.reverse(yourList);
...