我有一个问题,即我有一个AdapterRecycler,并在我的构造函数中我有一个列表<>项目,但我有类蛋糕,晚餐,饮料,沙拉和所有这些对象,我不得不扔进列表,因为我必须在代码中的几个地方使用我的AdapterRecycler设计器,但该怎么做?如何将不同对象的列表添加到构造函数中?
例如:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder>{
private List<Cake> cakeList = Collections.emptyList();
private List<Dinner> dinnerList = Collections.emptyList();
private List<Drinks> drinksList = Collections.emptyList();
private List<Salads> saladsList = Collections.emptyList();
***//So how to put other lists in one constructor?***
//
*In the code below I still use methods to retrieve Names and Resources, so how do I tell the program to know which list to return? I can't duplicate a constructor with the same parameters, so is there any solution to this problem?*
public RecyclerAdapter(Activity activity, List<Cake> items) {
this.activity = activity;
this.cakeList = items;
}
*//I can't do this. So how?*
public RecyclerAdapter(Activity activity, List<Salads> items) {
this.activity = activity;
this.saladsList = items;
}
}
RecyclerAdapter.class
class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private Activity activity;
List<Salatki> items = Collections.emptyList();
public RecyclerAdapter(Activity activity, List<Salatki> items) {
this.activity = activity;
this.items = items;
}
private Listener listener;
public static interface Listener {
public void onClick(int position);
}
public static class ViewHolder extends RecyclerView.ViewHolder {
private CardView cardView;
public ViewHolder(CardView v) {
super(v);
cardView=v;
}
}
public void setListener(Listener listener) {
this.listener = listener;
}
@Override
public CaptionedImagesAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
CardView cv = (CardView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_captioned_image, parent, false);
return new ViewHolder(cv);
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
CardView cardView = holder.cardView;
ImageView imageView = (ImageView)cardView.findViewById(R.id.info_image);
Drawable drawable = cardView.getResources().getDrawable(items.get(position).getImageResourceId());
imageView.setImageDrawable(drawable);
imageView.setContentDescription(items.get(position).getName());
TextView textView = (TextView)cardView.findViewById(R.id.info_text);
textView.setText(items.get(position).getName());
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null) {
listener.onClick(position);
}
}
});
}
@Override
public int getItemCount() {
return items.size();
}
}
感谢您的回答,但它仍然无法正常工作。 当我尝试使用适配器时,它得到的答案是java.util.List不能应用于java.util.List etc ... –
newActivity21
我更新了答案如何更改Adapter构造函数。 –