我需要得到我的recyclerview中所有viewholders的位置。基本上,当用户单击一个按钮时,如果任何编辑文本字段为空,则用户无法继续。我还通过一个类中的setter来设置每个编辑文本。这是为了我可以删除所有编辑文本的下划线,基本上使其不可编辑。
这是我的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);这是当用户单击该按钮时。这样做的问题是,在屏幕之外编辑文本将返回null,因为编辑文本是在onbindviewholder中设置的,这意味着只设置屏幕上的编辑文本。我需要所有的编辑文本设置。关于获取recyclerview的所有viewholders有什么建议吗?
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);https://stackoverflow.com/questions/47747583
复制相似问题