implementation 'com.jdqm.adapterlib:adapterlib:1.0.0'
example
RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(new CommonAdapter<BaseModel>(getContext(), R.layout.single_view_type, data) {
@Override
protected void convert(ViewHolder holder, BaseModel baseModel, final int position) {
holder.setText(R.id.tvTitle, String.valueOf("个性电台" + (position + 1)));
holder.setOnClickListener(R.id.itemView, new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(), String.valueOf("个性电台" + (position + 1)),
Toast.LENGTH_SHORT).show();
}
});
}
});
example
public class MyMultiItemViewAdapter extends MultiItemTypeAdapter<BaseModel> {
public MyMultiItemViewAdapter(Context context, List<BaseModel> datas) {
super(context, datas);
addItemViewDelegate(new RecommendMusicDelegate());
addItemViewDelegate(new RecommendArticleDelegate());
}
}
public class RecommendArticleDelegate implements ItemViewDelegate<BaseModel> {
@Override
public int getItemViewLayoutId() {
return R.layout.article_item;
}
@Override
public boolean isForViewType(BaseModel item, int position) {
return item.getViewType() == 1;
}
@Override
public void convert(ViewHolder holder, BaseModel baseModel, int position) {
}
}
public class RecommendMusicDelegate implements ItemViewDelegate<BaseModel> {
@Override
public int getItemViewLayoutId() {
return R.layout.single_view_type;
}
@Override
public boolean isForViewType(BaseModel item, int position) {
return item.getViewType() == 0;
}
@Override
public void convert(ViewHolder holder, BaseModel baseModel, int position) {
holder.setText(R.id.tvTitle, "个性电台" + position);
}
}