java Sort RecyclerView按其值的收尾/下移顺序
我正在开发一个应用程序,我想排序的价格从API到 1.从低到高 2.从高到低
是recylerView中的任何方法,用于按收尾和下移顺序排列项目
这是我的适配器OnBindViewHolder方法:
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
typeface = Typeface.createFromAsset(context.getAssets(),"fonts/Raleway-SemiBold.ttf");
String email = doctorList.get(position).getDoctor().getDoctor_email();
doctor_id = doctorList.get(position).getDoctor().getDoctor_id();
holder.dr_name.setText(doctorList.get(position).getDoctor().getDoctor_name());
holder.dr_exp.setText(doctorList.get(position).getDoctor().getDoctor_exp()+" exp.");
holder.dr_fee.setText("Rs. "+doctorList.get(position).getDoctor().getDoctor_fee());
Log.e("FEE",""+doctorList.get(position).getDoctor().getDoctor_fee());
// holder.dr_imageDL.setImageURI(Uri.parse(doctorList.get(position).getDoctor().getDoctor_img()));
Picasso.with(context)
.load(doctorList.get(position).getDoctor().getDoctor_img())
.memoryPolicy(MemoryPolicy.NO_CACHE)
.networkPolicy(NetworkPolicy.NO_CACHE)
.resize(200, 200)
.placeholder(R.drawable.doctor_img)
.into(holder.dr_imageDL);
holder.bookBtn.setTypeface(typeface);
holder.bookBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), BookAppointment.class);
intent.putExtra("DOCTOR_ID",doctor_id);
view.getContext().startActivity(intent);
Log.e("CLICK","CLICK"+doctor_id);
}
});
}
# 1 楼答案
您可以查看此代码以获取帮助
# 2 楼答案
您应该对doctorList列表进行排序,然后调用适配器。notifyDataSetChanged();重新绘制RecylerView视图
# 3 楼答案
您可以使用比较器根据特定值对列表中的对象进行排序,在您的情况下,您可以有两个比较器,如升序和降序。。在这里,您可以根据年龄对列表进行排序,您可以在对象中实现相同的价格 http://www.javatpoint.com/Comparator-interface-in-collection-framework 您也可以通过单个比较器实现此功能。请检查此链接: https://stackoverflow.com/a/1947527/6350239