Last active
May 20, 2019 05:31
-
-
Save DevAhamed/3b20a16b9eb8191c7ba17f572f19465b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ItemBinder for NewsSource | |
public class NewsSourceBinder extends ItemBinder<NewsSource, NewsSourceBinder.ViewHolder> { | |
@Override public ViewHolder createViewHolder(ViewGroup parent) { | |
return new ViewHolder(inflate(parent, R.layout.item_news_source)); | |
} | |
@Override public void bindViewHolder(ViewHolder holder, NewsSource item) { | |
holder.imageView.setImageResource(item.getIconResource()); | |
holder.textView.setText(item.getText()); | |
int bgColor = ContextCompat.getColor(holder.textView.getContext(), | |
holder.isItemSelected() ? item.getColor() : R.color.cardview_light_background); | |
holder.cardView.setBackgroundColor(bgColor); | |
holder.cardView.setCardElevation(holder.isItemSelected() ? 16 : 0); | |
} | |
@Override public boolean canBindData(Object item) { | |
return item instanceof NewsSource; | |
} | |
public static class ViewHolder extends ItemViewHolder<NewsSource> { | |
private ImageView imageView; | |
private TextView textView; | |
private CardView cardView; | |
public ViewHolder(View itemView) { | |
super(itemView); | |
imageView = itemView.findViewById(R.id.image_view); | |
cardView = (CardView) itemView; | |
textView = itemView.findViewById(R.id.text_view); | |
} | |
} | |
} | |
// ItemBinder for Header | |
public class HeaderBinder extends ItemBinder<String, HeaderBinder.ViewHolder> { | |
@Override public ViewHolder createViewHolder(ViewGroup parent) { | |
return new ViewHolder(inflate(parent, R.layout.item_header)); | |
} | |
@Override public void bindViewHolder(ViewHolder holder, String item) { | |
holder.header.setText(item); | |
} | |
@Override public boolean canBindData(Object item) { | |
return item instanceof String; | |
} | |
static class ViewHolder extends ItemViewHolder<String> { | |
private TextView header; | |
ViewHolder(View itemView) { | |
super(itemView); | |
header = itemView.findViewById(R.id.tv_header); | |
} | |
} | |
} | |
// Create adapter | |
public void setUpAdapter(List<NewsSource> newsPaperSourcesList, List<NewsSource> newsChannelSourcesList) { | |
MultiViewAdapter adapter = new MultiViewAdapter(); | |
// Register Binders | |
adapter.registerBinders(new NewsSourceBinder(), new HeaderBinder()); | |
// NewsPaperSources | |
ItemSection<String> newsPaperHeader = new ItemSection("News Papers"); | |
ListSection<NewsSource> newsPaperSources = new ListSection(); | |
newsPaperSources.addAll(newsPaperSourcesList); | |
// NewsChannelSources | |
ItemSection<String> newsChannelHeader = new ItemSection("News Channels"); | |
ListSection<NewsSource> newsChannelSources = new ListSection(); | |
newsChannelSources.addAll(newsChannelSourcesList); | |
// Add sections to adapter | |
adapter.addSection(newsPaperHeader); | |
adapter.addSection(newsPaperSources); | |
adapter.addSection(newsChannelHeader); | |
adapter.addSection(newsChannelSources); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment