package tk.zielony.carbonsamples.widget; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.List; import carbon.widget.ExpandableRecyclerView; import carbon.widget.RecyclerView; import carbon.widget.TextView; import tk.zielony.carbonsamples.R; public class ExpandableFruitAdapter extends ExpandableRecyclerView.Adapter<ExpandableFruitAdapter.ChildViewHolder, ExpandableRecyclerView.SimpleGroupViewHolder, String, String> { private List<String> fruits; public ExpandableFruitAdapter(List<String> fruits) { this.fruits = fruits; } @Override public int getGroupItemCount() { return fruits.size(); } @Override public int getChildItemCount(int group) { return 3; } @Override public String getGroupItem(int position) { return fruits.get(position); } @Override public String getChildItem(int group, int position) { return "Subitem " + position; } @Override protected ExpandableRecyclerView.SimpleGroupViewHolder onCreateGroupViewHolder(ViewGroup parent) { return new ExpandableRecyclerView.SimpleGroupViewHolder(parent.getContext()); } @Override protected ExpandableFruitAdapter.ChildViewHolder onCreateChildViewHolder(ViewGroup parent, int viewType) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); View view = inflater.inflate(R.layout.row_drawer, parent, false); return new ChildViewHolder(view); } @Override public int getChildItemViewType(int group, int position) { return 1; } @Override public void onBindGroupViewHolder(ExpandableRecyclerView.SimpleGroupViewHolder holder, int group) { super.onBindGroupViewHolder(holder, group); ExpandableRecyclerView.SimpleGroupViewHolder h = holder; h.setText(getGroupItem(group)); } @Override public void onBindChildViewHolder(ExpandableFruitAdapter.ChildViewHolder holder, int group, final int position) { super.onBindChildViewHolder(holder, group, position); holder.tv.setText(getChildItem(group, position)); } public class ChildViewHolder extends RecyclerView.ViewHolder { private final TextView tv; public ChildViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.text); } } }