Last active
April 26, 2016 16:21
-
-
Save nathanjones/570ad61d6a040b37118fa2be6257bfbe to your computer and use it in GitHub Desktop.
This file contains 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
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageViewHolder> { | |
// Edit your onCreateViewHolder method to use different layouts for each view type | |
@Override | |
public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
MessageType type = MessageType.values()[viewType]; | |
LayoutInflater inflater = LayoutInflater.from(parent.getContext()); | |
View itemView; | |
switch (type) { | |
case Text: | |
default: | |
itemView = inflater.inflate(R.layout.item_message_text, parent, false); | |
return new TextMessageViewHolder(itemView); | |
case Image: | |
itemView = inflater.inflate(R.layout.item_message_image, parent, false); | |
return new ImageMessageViewHolder(itemView); | |
case Location: | |
itemView = inflater.inflate(R.layout.item_message_location, parent, false); | |
return new LocationMessageViewHolder(itemView); | |
} | |
} | |
// ... | |
// Then add additional ViewHolders | |
private class TextMessageViewHolder extends MessageViewHolder { | |
final TextView messageText; | |
public TextMessageViewHolder(View itemView) { | |
super(itemView); | |
messageText = (TextView) itemView.findViewById(R.id.message_text); | |
} | |
@Override | |
void bind(int position) { | |
Message msg = messages.get(position); | |
messageText.setText(msg.text); | |
} | |
} | |
private class ImageMessageViewHolder extends MessageViewHolder { | |
final ImageView messageImage; | |
public ImageMessageViewHolder(View itemView) { | |
super(itemView); | |
messageImage = (ImageView) itemView.findViewById(R.id.message_image); | |
} | |
@Override | |
void bind(int position) { | |
Message msg = messages.get(position); | |
messageImage.setImageDrawable(msg.image); | |
} | |
} | |
private class LocationMessageViewHolder extends MessageViewHolder { | |
public LocationMessageViewHolder(View itemView) { | |
super(itemView); | |
} | |
@Override | |
void bind(int position) { | |
Message msg = messages.get(position); | |
Location location = msg.location; | |
// TODO: Load location into MapView | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment