viewholders
의 위치를 내 recyclerview
에 입력해야합니다. 기본적으로 사용자가 버튼을 클릭 할 때 편집 텍스트 필드가 비어 있으면 사용자는 계속 진행할 수 없습니다. 또한 각 편집 텍스트는 클래스의 설정자를 통해 설정됩니다. 이것은 모든 편집 텍스트의 밑줄을 제거하고 기본적으로 편집 할 수 없도록하기위한 것입니다.모든 뷰어 가져 오기 recyclerview
이 내 onbindviewholder
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position){
/*
Holder for exercise row
Sets the text for exercise, weight, sets, and reps
Disables text if save button is clicked
*/
if(holder instanceof ExerciseRowHolder) {
int pos = holder.getAdapterPosition();
Log.d("pos", String.format("%s", pos));
((ExerciseModel) rowTypeList.get(pos)).setExerciseEditText(((ExerciseRowHolder) holder).exercise);
((ExerciseModel) rowTypeList.get(pos)).setWeightEditText(((ExerciseRowHolder) holder).weight);
((ExerciseModel) rowTypeList.get(pos)).setSetsEditText(((ExerciseRowHolder) holder).set);
((ExerciseModel) rowTypeList.get(pos)).setRepsEditText(((ExerciseRowHolder) holder).rep);
((ExerciseModel) rowTypeList.get(pos)).setDragHandle(((ExerciseRowHolder) holder).dragHandle);
((ExerciseModel) rowTypeList.get(pos)).setExerciseRowTextWatcher(((ExerciseRowHolder) holder).exerciseRowTextWatcher);
((ExerciseRowHolder) holder).updatePosition(pos);
사용자가 버튼 있음을 클릭 할 때이입니다. 이 문제는 편집 텍스트가 onbindviewholder
으로 설정되어 화면 외부의 viewholders
에 대해 null을 반환한다는 것을 의미합니다. 이는 화면상의 편집 텍스트 만 설정된다는 것을 의미합니다. 나는 모든 편집 텍스트를 설정해야합니다. viewholders
이 recyclerview
인 모든 제안 사항이 있으십니까?
int childCount = displayWorkoutAdapter.getItemCount() - 1;
//checks for all the children of recyclerView excluding the buttons
for (int a = childCount; a > 0; a--) {
RowType rowType = displayWorkoutAdapter.rowTypeList.get(a);
//if the first row = exercise row, check to see if there is any input in the exercise, sets, and reps field
//if not, display error
if (rowType.getClass() == ExerciseModel.class) {
AutoCompleteTextView exercise = ((ExerciseModel) rowType).getExerciseEditText();
EditText weight = ((ExerciseModel) rowType).getWeightEditText();
EditText sets = ((ExerciseModel) rowType).getSetsEditText();
EditText reps = ((ExerciseModel) rowType).getRepsEditText();
/*
if(exercise == null){
exercise = exerciseRow.findViewById(R.id.autoCompleteTextView);
weight = exerciseRow.findViewById(R.id.weight);
sets = exerciseRow.findViewById(R.id.sets);
reps = exerciseRow.findViewById(R.id.reps);
}*/
textListenerToRemoveError(exercise, weight, sets, reps);
이미 구현 된 모든 항목이 있으므로 RecyclerView를 계속 사용하는 것이 좋습니다. 내가 가진 유일한 문제는 모든 편집 텍스트를 편집 할 수 없도록 만드는 것입니다. 나는 단추를 클릭 할 때마다 편집 텍스트를 비활성화하기 때문에 onbindviewholder에 플래그를 설정할 수 있음을 알고 있습니다. 그러나, 나는 모든 편집 텍스트가 채워지는지 확인하는 방법을 확신 할 수 없다. –