public class adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public View header;
public View footer;
public Context context;
public static final int TYPE_HEADER = 0;
public static final int TYPE_OPTIONS = 1;
public static final int TYPE_FOOTER = 2;
public adapter(Context context, ArrayList<String> list) {
this.context = context;
dataSet = list;
}
public List<String> dataSet;
public View getHeader() {
return header;
}
public View getFooter() {
return footer;
}
public void setHeader(View header) {
this.header = header;
}
public void setFooter(View footer) {
this.footer = footer;
}
@Override
public int getItemViewType(int position) {
if (position == 0) {
return TYPE_HEADER;
} else if (position == dataSet.size() + 1) {
return TYPE_FOOTER;
} else {
return TYPE_OPTIONS;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
if (i == 0) {
return new HeaderView(header);
} else if (i == 1) {
View view = LayoutInflater.from(context).inflate(R.layout.item, viewGroup, false);
return new ItemView(view);
} else if (i == 2) {
return new FooterView(footer);
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
int type = getItemViewType(i);
if (type == TYPE_OPTIONS) {
ItemView holder = (ItemView) viewHolder;
holder.t.setText(dataSet.get(i - 1));
}
if (type == TYPE_HEADER) {
HeaderView h = (HeaderView) viewHolder;
}
if (type == TYPE_FOOTER) {
FooterView h = (FooterView) viewHolder;
}
}
@Override
public int getItemCount() {
return dataSet.size() + 2;
}
public class HeaderView extends RecyclerView.ViewHolder {
View view = itemView.findViewById(R.id.h);
public HeaderView(View itemView) {
super(itemView);
}
}
public class ItemView extends RecyclerView.ViewHolder {
public ItemView(View itemView) {
super(itemView);
}
public TextView t = (TextView) itemView.findViewById(R.id.textView);
}
public class FooterView extends RecyclerView.ViewHolder {
View view = itemView.findViewById(R.id.f);
public FooterView(View itemView) {
super(itemView);
}
}
}