从ChecklerView中的列表中检查Android CheckBox

时间:2017-01-05 00:19:06

标签: android android-recyclerview

我想查看一些带有来自Rest Service的收据列表的复选框。

这里有一些代码。

请求

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();
        }
    });
}

如果我的opcional列表有验证......

    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);
            }
        }
    }
}

我如何检查我的Recyclerview上的“opcionais”?

1 个答案:

答案 0 :(得分:0)

我以这种方式解决了我的问题...

我已将数组发送到我的适配器。

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()上,我检查了我的数组是否为空。

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);
        }
    }
}