首页 > 解决方案 > 访问以编程方式创建的 recyclerview 的子项(Chip)

问题描述

在 MainActivity 中,我创建了一个 Array of Array of Chip 并膨胀到 Recyclerview。在 RecyclerAdapter 内部,我必须删除芯片的父级才能将每个 Array 放入 ChipGroup 中。现在我需要在 MainActivity 中获取所有 ChipGroup(及其芯片)。我已经尝试过ChipGroup cg = (ChipGroup) findElementByID(R.id.chip_row_chipgroup),但只检索了第一个 ChipGroup(显然是因为我删除了其余部分的父级)

RecyclerAdapter.java

public class ChipSelectAdapter extends RecyclerView.Adapter<ChipSelectAdapter.ViewHolder> {
        private ArrayList<ArrayList<Chip>> items;
        private Context context;

        public ChipSelectAdapter(Context context, ArrayList<ArrayList<Chip>> chips) {
            this.context = context;
            this.items = chips;
        }

        @Override
        public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
            View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.chip_row, viewGroup, false);
            return new ViewHolder(view);
        }

        @Override
        public void onBindViewHolder(ViewHolder viewHolder, final int position) {

            viewHolder.setIsRecyclable(false);

            for (Chip chip : items.get(position))
            {
                if(chip.getParent() != null)
                {
                    ((ViewGroup)chip.getParent()).removeView(chip);
                }

                viewHolder.chipGroup.addView(chip);
            }


            // listener
            viewHolder.itemView.setOnClickListener (new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Do something!

                }
            });

        }

        @Override
        public int getItemCount() {
            return items.size();
        }

        public class ViewHolder extends RecyclerView.ViewHolder {

            public ChipGroup chipGroup;

            public ViewHolder(View view) {
                super(view);

                chipGroup = (ChipGroup) view.findViewById(R.id.chip_row_chipgroup);

            }
        }
    }

标签: javaandroidandroid-recyclerviewandroid-chips

解决方案


推荐阅读