Java 将复选框与recyclerview一起使用

Java 将复选框与recyclerview一起使用,java,android,Java,Android,我是android新手。我无法使用带有复选框的回收视图。 我使用的是带有复选框的回收器视图。现在,带有复选框的标题应该出现在“我的活动”中。我已经在数组列表中添加了复选框selected title如何在活动中获取它们? 我只需要在活动中选中复选框数组列表 下面是我的适配器类 public class CheckboxAdapter extends RecyclerView.Adapter<CheckboxAdapter.ViewHolder> {

我是android新手。我无法使用带有复选框的回收视图。
我使用的是带有复选框的回收器视图。现在,带有复选框的标题应该出现在“我的活动”中。我已经在数组列表中添加了复选框selected title如何在活动中获取它们? 我只需要在活动中选中复选框数组列表

下面是我的适配器类

   public class CheckboxAdapter extends
            RecyclerView.Adapter<CheckboxAdapter.ViewHolder> {
        private List<SearchListItem> searchListItems;
        private OnSearchItemSelected onSearchItemSelected;
        public ArrayList<String> addTitle;

        CheckboxAdapter(List<SearchListItem> arrayList, OnSearchItemSelected onSearchItemSelected) {
            this.searchListItems = arrayList;
            this.onSearchItemSelected = onSearchItemSelected;

        }


        class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

            @BindView(R.id.title)
            TextView mTxtTitle;
            @BindView(R.id.checkBox)
            CheckBox checkBox;

            ViewHolder(View row) {
                super(row);
                ButterKnife.bind(this, row);

                row.setOnClickListener(this);

            }

            @Override
            public void onClick(View view) {
                int pos = getAdapterPosition();
                SearchListItem searchListItem = searchListItems.get(pos);
                try {
                    onSearchItemSelected.onClick(pos, searchListItem);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

        @Override
        public int getItemCount() {
            // TODO Auto-generated method stub
            return searchListItems.size();
        }

        @Override
        public void onBindViewHolder(@NonNull final CheckboxAdapter.ViewHolder holder, final int position) {
            SearchListItem output = searchListItems.get(position);
            holder.mTxtTitle.setText(output.title);

            holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (isChecked) {

                        addAllTitle(holder);
                    }
                    }
                });
            }

        public OnSearchItemSelected getOnSearchItemSelected() {
            return onSearchItemSelected;
        }



        public void addAllTitle(ViewHolder holder) {
            for (int i = 0; i < addTitle.size(); i++) {
                addTitle.add(String.valueOf(holder.mTxtTitle));
            }
        }


        @NonNull
        @Override
        public CheckboxAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int arg1) {
            Context context = parent.getContext();
            LayoutInflater inflater = LayoutInflater.from(context);
            View contactView = inflater.inflate(R.layout.adapter_checkbox, parent, false);

            return new CheckboxAdapter.ViewHolder(contactView);
        }
}
公共类CheckboxAdapter扩展
RecyclerView.适配器{
私有列表搜索列表项;
私有OnSearchItemSelected OnSearchItemSelected;
公共ArrayList addTitle;
CheckboxAdapter(列表arrayList,OnSearchItemSelected OnSearchItemSelected){
this.searchListItems=arrayList;
this.onSearchItemSelected=onSearchItemSelected;
}
类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
@BindView(R.id.title)
文本视图mTxtTitle;
@BindView(R.id.checkBox)
复选框;
视图保持架(视图行){
超级(世界其他地区);
把(这一排)捆起来;
row.setOnClickListener(this);
}
@凌驾
公共void onClick(视图){
int pos=getAdapterPosition();
SearchListItem SearchListItem=searchListItems.get(pos);
试一试{
onSearchItemSelected.onClick(pos,searchListItem);
}捕获(例外e){
e、 printStackTrace();
}
}
}
@凌驾
public int getItemCount(){
//TODO自动生成的方法存根
返回searchListItems.size();
}
@凌驾
public void onBindViewHolder(@NonNull final CheckboxAdapter.ViewHolder,final int位置){
SearchListItem输出=searchListItems.get(位置);
holder.mTxtTitle.setText(output.title);
setOnCheckedChangeListener(newcompoundButton.OnCheckedChangeListener()){
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
如果(已检查){
addAllTitle(持有人);
}
}
});
}
公共OnSearchItemSelected getOnSearchItemSelected(){
返回所选的搜索结果;
}
公共无效addAllTitle(视图持有者){
对于(int i=0;i
您必须在模型类中添加一个
布尔值
,例如
isChecked

如果选中了
复选框
,则将其设为
,否则

获取在
活动
中传递给
适配器
的相同列表,此列表将显示所有复选框

前 在
活动中

adapter = new MyAdapter(myList);

/*you can get all checked boxes here, paste this code where you need it*/
    for(i=0; i<myList.size();i++){
        if(myList.isChecked()){
            //... do somehing ...
        }
    }

您可以使用接口来做这件事,您可以在这里寻找一个示例如何获取(mylist.isChecked)?您必须在您的模型类中添加一个
boolean
,例如
isChecked
,并使其成为getter setter方法
onBindViewHolder() method



holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                 myList.setchecked(isChecked);
            }
        });