public
class
RoutineAdapter
extends
RecyclerView.Adapter<RoutineAdapter.ViewHolder> {
ArrayList<RoutineModel> routineItems;
RoutineDetailAdapter detailAdapter;
Context context;
public
RoutineAdapter() {
routineItems =
new
ArrayList<>();
detailAdapter =
new
RoutineDetailAdapter();
}
public
void
addItem(RoutineModel item) {
routineItems.add(item);
}
@NonNull
@Override
public
ViewHolder onCreateViewHolder(
@NonNull
ViewGroup parent,
int
viewType) {
context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View itemView = inflater.inflate(R.layout.routine_item, parent,
false
);
return
new
ViewHolder(itemView);
}
@Override
public
void
onBindViewHolder(
@NonNull
ViewHolder holder,
int
position) {
RoutineModel curRoutineItem = routineItems.get(position);
holder.setItems(curRoutineItem);
holder.setRoutineDetailRecyClerView();
curRoutineItem.arrayListDetail.add(
new
RoutineDetailModel());
holder.routine_detail.setAdapter(detailAdapter);
detailAdapter.addItems(curRoutineItem.arrayListDetail);
holder.addSet.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
detailAdapter.addItems(curRoutineItem.arrayListDetail);
notifyDataSetChanged();
}
});
}
@Override
public
int
getItemCount() {
return
routineItems.size();
}
public
class
ViewHolder
extends
RecyclerView.ViewHolder {
TextView routine;
Button addSet;
RecyclerView routine_detail;
public
ViewHolder(
@NonNull
View itemView) {
super
(itemView);
initViews();
}
private
void
initViews() {
routine = itemView.findViewById(R.id.routine);
routine_detail = itemView.findViewById(R.id.detail_routine);
addSet = itemView.findViewById(R.id.add_set);
}
private
void
setItems(RoutineModel routineItem) {
routine.setText(routineItem.getRoutine());
}
public
void
setRoutineDetailRecyClerView() {
routine_detail.setLayoutManager(
new
LinearLayoutManager(context, RecyclerView.VERTICAL,
false
));
routine_detail.setHasFixedSize(
true
);
}
}
}