답변 주신 것처럼 코드를 수정해보았으나 코드가 이해가 완전히 되지 않은 것처럼 이해가 잘 안되어서 제 코드에서
수정을 조금씩 다시 하는식으로 코드를 손봤습니다. firstRecyclerView에 reConnectToAdapter 함수를 추가해서
추가하기 버튼을 누르면 모든 로그에서 추가세트가 생기는 것은 해결하였으나
여전히 set를 추가하는 리사이클러뷰가 모든 로그에서 공유되고있는 것 같습니다..

[firstRecyclerView]
public class HealthFirstRecyclerViewAdapter extends RecyclerView.Adapter<HealthFirstRecyclerViewAdapter.ViewHolder>{
ArrayList<Routine> routines = new ArrayList<>(); // 새로운 루틴을 받기 위한 배열
ArrayList<SetsList> setsLists = new ArrayList<>(); // 세트수 추가를 위한 배열
int setIndex = 0;
public class ViewHolder extends RecyclerView.ViewHolder {
/* 첫 번째 리사이클러뷰는 텍스트뷰 / 버튼 그리고 리사이클러뷰를 가지고 있음 */
private RecyclerView setsRecyclerView;
private TextView exerciseText;
private Button addBtn;
/**
* 아이템 뷰를 저장하는 뷰홀더 클래스
* @param itemView
*/
public ViewHolder(@NonNull View itemView) {
super(itemView);
exerciseText = itemView.findViewById(R.id.registeredTextView);
addBtn = itemView.findViewById(R.id.addWeight);
setsRecyclerView = itemView.findViewById(R.id.todayLogRecyclerView);
HealthSecondRecyclerViewAdapter adapter = new HealthSecondRecyclerViewAdapter(setsLists);
setsRecyclerView.setAdapter(adapter);
}
public TextView getTextView() { return exerciseText; }
public Button getButton() { return addBtn; }
public RecyclerView getRecyclerView() { return setsRecyclerView; }
}
/**
* 생성자에서 루틴 객체를 전달 받는다.
* @param list
*/
public HealthFirstRecyclerViewAdapter(ArrayList<Routine> list) { this.routines = list; }
/**
* 아이템 뷰를 위한 뷰홀더 객체를 생성하여 리턴한다.
* @param parent
* @param viewType
* @return
*/
@NonNull
@Override
public HealthFirstRecyclerViewAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = null;
v = LayoutInflater.from(parent.getContext()).inflate(R.layout.health_recyclerview_first, parent, false);
return new HealthFirstRecyclerViewAdapter.ViewHolder(v);
}
/**
* position에 해당하는 데이터를 뷰홀더의 아이템뷰에 표시.
* @param holder
* @param position
*/
@Override
public void onBindViewHolder(@NonNull HealthFirstRecyclerViewAdapter.ViewHolder holder, int position) {
Routine item = routines.get(position);
holder.exerciseText.setText(item.getExerciseText());
holder.addBtn.setText("추가");
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(holder.itemView.getContext());
holder.getRecyclerView().setLayoutManager(linearLayoutManager);
holder.getButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SetsList newSetsList = new SetsList(String.valueOf(setIndex++ +1) + "set", 0 + "kg", 0 + "reps");
setsLists.add(newSetsList);
reConnectToAdapter(holder);
}
});
}
public void reConnectToAdapter(ViewHolder holder) {
HealthSecondRecyclerViewAdapter adapter = new HealthSecondRecyclerViewAdapter(setsLists);
holder.getRecyclerView().setAdapter(adapter);
}
/**
* 전체 데이터 개수 리턴.
* @return
*/
@Override
public int getItemCount() { return routines.size(); }
}
[secondRecyclerView]
public class HealthSecondRecyclerViewAdapter extends RecyclerView.Adapter<HealthSecondRecyclerViewAdapter.ViewHolder>{
ArrayList<SetsList> SetsList = new ArrayList<>();
TextView setTextView, weightTextView, repsTextView;
public class ViewHolder extends RecyclerView.ViewHolder{
public ViewHolder(@NonNull View itemView) {
super(itemView);
setTextView = itemView.findViewById(R.id.set);
weightTextView = itemView.findViewById(R.id.healthWeight);
repsTextView = itemView.findViewById(R.id.reps);
}
public TextView getSetTextView() { return setTextView; }
public TextView getWeightTextView() { return weightTextView; }
public TextView getRepsTextView() { return repsTextView; }
}
public HealthSecondRecyclerViewAdapter(ArrayList<SetsList> list) {
SetsList = list;
}
@NonNull
@Override
public HealthSecondRecyclerViewAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = null;
v = LayoutInflater.from(parent.getContext()).inflate(R.layout.health_recyclerview_second, parent, false);
return new HealthSecondRecyclerViewAdapter.ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull HealthSecondRecyclerViewAdapter.ViewHolder holder, int position) {
SetsList item = SetsList.get(position);
holder.getSetTextView().setText(item.getSetsText());
holder.getWeightTextView().setText(item.getWeightText());
holder.getRepsTextView().setText(item.getRepsText());
}
@Override
public int getItemCount() { return SetsList.size(); }
}