Skip to content

Instantly share code, notes, and snippets.

@amalChandran
Forked from ec84b4/gist:d56c00fb5fd2dfaf279b
Last active September 15, 2015 15:37
Show Gist options
  • Select an option

  • Save amalChandran/51f6a0e32379d93263de to your computer and use it in GitHub Desktop.

Select an option

Save amalChandran/51f6a0e32379d93263de to your computer and use it in GitHub Desktop.

Revisions

  1. @ec84b4 ec84b4 revised this gist Jan 18, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@ import android.widget.TextView;
    * Created by khaled bakhtiari on 10/26/2014.
    * <a href="http://about.me/kh.bakhtiari">
    */
    public class HeaderAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    public class HeaderAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private static final int TYPE_HEADER = 0;
    private static final int TYPE_ITEM = 1;
    String[] data;
    @@ -58,7 +58,7 @@ public class HeaderAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
    }

    private String getItem(int position) {
    return data[position + 1];
    return data[position - 1];
    }

    class VHItem extends RecyclerView.ViewHolder {
  2. @ec84b4 ec84b4 created this gist Oct 26, 2014.
    79 changes: 79 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,79 @@
    import android.support.v7.widget.RecyclerView;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.TextView;

    /**
    * Created by khaled bakhtiari on 10/26/2014.
    * <a href="http://about.me/kh.bakhtiari">
    */
    public class HeaderAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private static final int TYPE_HEADER = 0;
    private static final int TYPE_ITEM = 1;
    String[] data;

    public HeaderAdapter(String[] data) {
    this.data = data;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == TYPE_ITEM) {
    //inflate your layout and pass it to view holder
    return new VHItem(null);
    } else if (viewType == TYPE_HEADER) {
    //inflate your layout and pass it to view holder
    return new VHHeader(null);
    }

    throw new RuntimeException("there is no type that matches the type " + viewType + " + make sure your using types correctly");
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof VHItem) {
    String dataItem = getItem(position);
    //cast holder to VHItem and set data
    } else if (holder instanceof VHHeader) {
    //cast holder to VHHeader and set data for header.
    }
    }

    @Override
    public int getItemCount() {
    return data.length + 1;
    }

    @Override
    public int getItemViewType(int position) {
    if (isPositionHeader(position))
    return TYPE_HEADER;

    return TYPE_ITEM;
    }

    private boolean isPositionHeader(int position) {
    return position == 0;
    }

    private String getItem(int position) {
    return data[position + 1];
    }

    class VHItem extends RecyclerView.ViewHolder {
    TextView title;

    public VHItem(View itemView) {
    super(itemView);
    }
    }

    class VHHeader extends RecyclerView.ViewHolder {
    Button button;

    public VHHeader(View itemView) {
    super(itemView);
    }
    }
    }