回收视图列表中的Android复选框

回收视图列表中的Android复选框,android,android-recyclerview,Android,Android Recyclerview,我想用Rest服务的接收列表选中一些复选框 这里有一些代码 请求 private void requestOpcionais() { OpcionalRequestHelper.opcionaisRequest(Request.Method.GET, EndpointURL.GET_OPCIONAIS, null, new Response.Listener<Opcional[]>() { @Override public void onRes

我想用Rest服务的接收列表选中一些复选框

这里有一些代码

请求

private void requestOpcionais() {
    OpcionalRequestHelper.opcionaisRequest(Request.Method.GET, EndpointURL.GET_OPCIONAIS, null, new Response.Listener<Opcional[]>() {
        @Override
        public void onResponse(Opcional[] response) {
            ArrayList<Opcional> opcionalArrayList = new ArrayList<>();

            opcionalArrayList.addAll(Arrays.asList(response));

            mRecyclerView.setHasFixedSize(true);
            mLayoutManager = new LinearLayoutManager(getActivity());
            mRecyclerView.setLayoutManager(mLayoutManager);
            listOpcionalAdapter = new ListOpcionalAdapter(getActivity(), opcionalArrayList, VeiculoFragment.this);
            mRecyclerView.setAdapter(listOpcionalAdapter);

            if (veiculo != null) {
                setOpcionalVeiculoSelected(opcionalArrayList, veiculo.getOpcionais());
            }
            progressDialogOpcionais.dismiss();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            progressDialogOpcionais.dismiss();
            Toast.makeText(getActivity(), "Erro ao carregar opcionais.", Toast.LENGTH_LONG).show();
        }
    });
}
private void requestOpcionais(){
OpcionalRequestHelper.opcionaisRequest(Request.Method.GET,EndpointURL.GET_OPCIONAIS,null,new Response.Listener()){
@凌驾
public void onResponse(选项[]响应){
ArrayList opcionalArrayList=新建ArrayList();
addAll(Arrays.asList(response));
mRecyclerView.setHasFixedSize(true);
mLayoutManager=新的LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(mllayoutmanager);
listOpcionalAdapter=新的listOpcionalAdapter(getActivity(),opcionalArrayList,VeiculoFragment.this);
mrecycerview.setAdapter(listOpcionalAdapter);
if(veiculo!=null){
setOpcionalVeiculoSelected(opcionalArrayList,veiculo.getOpcionais());
}
progressDialogOpcionais.discouse();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
progressDialogOpcionais.discouse();
Toast.makeText(getActivity(),“Erro ao carregar opcionais.”,Toast.LENGTH_LONG.show();
}
});
}
如果我的选择列表

    private void setOpcionalVeiculoSelected(ArrayList<Opcional> opcionalArrayList, List<Opcional> opcionais) {
    for (Opcional opcionalList : opcionalArrayList) {
        for (Opcional opcionalVeiculo : opcionais) {
            if (opcionalVeiculo.getId() == opcionalList.getId()) {
                mOpcionalChecked.add(opcionalVeiculo);
            }
        }
    }
}
private void setOpcionalVeiculoSelected(ArrayList opcionalArrayList,List opcionais){
for(Opcional opcionalList:opcionalArrayList){
对于(Opcional opcionalVeiculo:opcionais){
if(opcionalviculo.getId()==opcionalList.getId()){
mOpcionalChecked.add(opcionalviculo);
}
}
}
}

我如何检查我的回收视图上的“选项”?

我通过这种方式解决了我的问题

我已将阵列发送到适配器

if (veiculo != null) {
                setOpcionalVeiculoSelected(opcionalArrayList, veiculo.getOpcionais());
                listOpcionalAdapter = new ListOpcionalAdapter(getActivity(), opcionalArrayList, VeiculoFragment.this, veiculo.getOpcionais());
            } else {
                listOpcionalAdapter = new ListOpcionalAdapter(getActivity(), opcionalArrayList, VeiculoFragment.this, null);
            }
在onBindViewHolder()上,我检查了数组是否为null

onBindViewHolder()    
if (opcionalsVeiculo != null) {
    setOpcionalVeiculoSelected(holder, position);
}
最后检查我的数组和适配器中另一个数组的位置

private void setOpcionalVeiculoSelected(ViewHolder holder, int position) {
    for (Opcional opcional : opcionalsVeiculo) {
        if (opcionals.get(position).getId() == opcional.getId()) {
            holder.chb_opcional.setChecked(true);
        }
    }
}