dependencies {
implementation 'com.github.drakeet.multitype:multitype:3.7.4'
}
public class MyApp extends Application {
@Override public void onCreate() {
super.onCreate();
MultiType.initialize(new MultiTypeConfigurator());
}
}
public class News {
public String title;
public String content;
public News(String title, String content) {
this.title = title;
this.content = content;
}
}
public class NewsBinder extends ItemViewBinder<News, NewsViewHolder> {
@NonNull
@Override
protected NewsViewHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {
View view = inflater.inflate(R.layout.item_news, parent, false);
return new NewsViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull NewsViewHolder holder, @NonNull News news) {
holder.titleTextView.setText(news.title);
holder.contentTextView.setText(news.content);
}
}
MultiType.register(News.class, new NewsBinder());
public class NewsAdapter extends MultiTypeAdapter {
public NewsAdapter() {
registerDelegate(new NewsBinder());
}
public void setNewsList(List<News> newsList) {
items = newsList;
notifyDataSetChanged();
}
}