首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取所有viewholders回收视图

获取所有viewholders回收视图
EN

Stack Overflow用户
提问于 2017-12-11 14:33:38
回答 0查看 1.5K关注 0票数 0

我需要得到我的recyclerview中所有viewholders的位置。基本上,当用户单击一个按钮时,如果任何编辑文本字段为空,则用户无法继续。我还通过一个类中的setter来设置每个编辑文本。这是为了我可以删除所有编辑文本的下划线,基本上使其不可编辑。

这是我的onbindviewholder

代码语言:javascript
复制
 @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有什么建议吗?

代码语言:javascript
复制
        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);
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47747583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档