我有一些带有日期字段的 POJO,我在 RecyclerView
中显示这些字段。现在我只想在具有特定日期的第一个项目上显示日期。
这意味着如果我有 4 个日期为 01/13/2017
的项目,日期应该出现在第一个项目上,而不是在其余 3 个项目上。
有什么想法吗?
最佳答案
使用这种类型的 recyclerView :
确保像这样扩展 RrecyclerViewAdapter RecyclerView.Adapter
创建两个 ViewHolder。
public class RecyclersViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { ArrayList<Data> arrayList; Context context; public final int TYPE_DATE = 0; public final int TYPE_CONTENT = 1; public RecyclersViewAdapter(ArrayList<Data> arrayList, Context context) { this.arrayList = arrayList; this.context = context; } @Override public int getItemViewType(int position) { // Data Class have three fields : Id,Date,Title if (arrayList.get(position).getId().equals("") && arrayList.get(position).getTitle().equals("")) return TYPE_DATE; else return TYPE_CONTENT; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { if (viewType == TYPE_DATE) { View view = LayoutInflater.from(context).inflate(R.layout.recyc_row,null); return new contentViewHolder(view); } else { View view1 = LayoutInflater.from(context).inflate(R.layout.recyc_row1,null); return new dateViewHolder(view1); } } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) { if(viewHolder instanceof contentViewHolder) { ((contentViewHolder) viewHolder).id.setText(arrayList.get(position).getId()); ((contentViewHolder) viewHolder).title.setText(arrayList.get(position).getTitle()); } if(viewHolder instanceof dateViewHolder) { ((dateViewHolder) viewHolder).date.setText(arrayList.get(position).getStartDate()); } } public class contentViewHolder extends RecyclerView.ViewHolder { TextView id,title; public contentViewHolder(@NonNull View itemView) { super(itemView); id = itemView.findViewById(R.id.tv_id); title = itemView.findViewById(R.id.tv_title); } } public class dateViewHolder extends RecyclerView.ViewHolder { TextView date; public dateViewHolder(@NonNull View itemView) { super(itemView); date = itemView.findViewById(R.id.tv_date); } } @Override public int getItemCount() { return arrayList.size(); }
关于android - 根据值(value)对 recyclerview 中的项目进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638719/