Skip to content

Instantly share code, notes, and snippets.

View nathanjones's full-sized avatar

Nathan Jones nathanjones

View GitHub Profile
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());
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageViewHolder> {
// ...
@Override
public int getItemViewType(int position) {
return messages.get(position).type.ordinal();
}
// ...
// As an enum
public enum MessageViewType {
Text, Image, Location
}
// Or as a list of integers, if you prefer
public static final int MESSAGE_VIEW_TYPE_TEXT = 0;
public static final int MESSAGE_VIEW_TYPE_IMAGE = 1;
public static final int MESSAGE_VIEW_TYPE_LOCATION = 2;
/**
* An adapter to display a list of Messages.
*/
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageViewHolder> {
private List<Message> messages;
@Override
public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
/**
* Example data structure for a simple message
*/
public class Message {
public MessageType type;
public String text;
public Drawable image;
public Location location;
// required to use RecyclerViews
compile 'com.android.support:recyclerview-v7:23.2.1'
// probably a good idea to have too
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:cardview-v7:23.2.1'
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
android:clipToPadding="false" />
package com.nathanrjones.messenger;
import android.location.Location;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
@nathanjones
nathanjones / onename-verification
Created August 15, 2014 14:51
Onename.io Verification
Verifying that +nathanjones is my Bitcoin username. You can send me #bitcoin here: https://onename.io/nathanjones
@nathanjones
nathanjones / chromecast-config.json
Last active December 27, 2015 08:39
Chromecast Device Config from Google (as of 11/03/13) https://clients3.google.com/cast/chromecast/device/config
{
"configuration":{
"idle_screen_app":"00000000-0000-0000-0000-000000000000"
},
"applications":[
{
"app_name":"TicTacToe",
"url":"http://www.gstatic.com/eureka/sample/tictactoe/tictactoe.html",
"use_channel":true,