1.导入引用
implementation 'me.drakeet.multitype:multitype:3.4.4'
2.创建binder(这只是其中一个)
public class AddNoticeItemBinder
extends ItemViewBinder<String, AddNoticeItemBinder.TextHolder> {
private Activity mActivity;
public AddNoticeItemBinder(Activity activity) {
mActivity = activity;
}
static class TextHolder extends RecyclerView.ViewHolder {
private final RelativeLayout mRlAddNotice;
TextHolder(@NonNull View itemView) {
super(itemView);
mRlAddNotice = itemView.findViewById(R.id.rl_add_notice);
}
}
@NonNull @Override
protected TextHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {
View root = inflater.inflate(R.layout.item_add_notice, parent, false);
return new TextHolder(root);
}
@Override
protected void onBindViewHolder(@NonNull TextHolder holder, @NonNull String item) {
holder.mRlAddNotice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mActivity, EditNoticeActivity.class);
mActivity.startActivity(intent);
}
});
}
3.创建recyclerview,并使用multitype
mRvNotice = findViewById(R.id.rv_notice); mAdapter = new MultiTypeAdapter(); mItemBinder = new NoticeItemBinder(this); mAdapter.register(NoticeItem.class,mItemBinder); mAdapter.register(String.class, new AddNoticeItemBinder(this)); mRvNotice.setAdapter(mAdapter); mRvNotice.setLayoutManager(new LinearLayoutManager(this)); mItems = new Items(); for (int i = 0; i < 5; i++) { NoticeItem noticeItem = new NoticeItem("test"); items.add(noticeItem); } mAdapter.setItems(mItems);