Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 选中复选框时添加值_Android_Firebase_Checkbox - Fatal编程技术网

Android 选中复选框时添加值

Android 选中复选框时添加值,android,firebase,checkbox,Android,Firebase,Checkbox,我想检索选中的复选框数,这是我的尝试 private int checkCheckBoxes(int total) { View habitosView = (LayoutInflater.from(mContext)).inflate(R.layout.habitos_list_row, null); CheckBox CB1 = habitosView.findViewById(R.id.CBdia1); Che

我想检索选中的复选框数,这是我的尝试

    private int checkCheckBoxes(int total) {
            View habitosView = (LayoutInflater.from(mContext)).inflate(R.layout.habitos_list_row, null);
            CheckBox CB1 = habitosView.findViewById(R.id.CBdia1);
            CheckBox CB2 = habitosView.findViewById(R.id.CBdia2);
            CheckBox CB3 = habitosView.findViewById(R.id.CBdia3);
            CheckBox CB4 = habitosView.findViewById(R.id.CBdia4);
            CheckBox CB5 = habitosView.findViewById(R.id.CBdia5);
            CheckBox[] checkBoxes = new CheckBox[5];
            checkBoxes[0] = CB1;
            checkBoxes[1] = CB2;
            checkBoxes[2] = CB3;
            checkBoxes[3] = CB4;
            checkBoxes[4] = CB5;
            int habitosTotal = total;
            for (int x=0; x<5; x++){
                if(checkBoxes[x].isChecked()){
                    habitosTotal = habitosTotal +  1;
                }
            }
            Log.d("Habitos total" , habitosTotal+"");
            return habitosTotal;

    };

不管怎样,它都返回0,有人能指出错误吗。我找不到它。

您应该使用setOnCheckedChangeListener

样本:

chk.setOnCheckedChangeListener(new 
 CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        switch (buttonView.getId()){
            case R.id.checkbox1:
                if(isChecked)
                    //increment checked total
                else
                    //dercrement checked total
                break;
            case R.id.checkBox2:
                if(isChecked)
                   //increment checked total
                else
                  //decrement checked total
                break;


        }
    }
});

我的一个应用程序中有它

 btnCadastro.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(rb1.isChecked()){
                        dadosresponsavel = new Dadosresponsavel();
                        dadosresponsavel.setNome(tNome.getText().toString().trim());
                        dadosresponsavel.setCidade(tCidade.getText().toString().trim());
                        dadosresponsavel.setTelefone(tTelefone.getText().toString().trim());
                        dadosresponsavel.setEmail(useremail.getText().toString().trim());
                        dadosresponsavel.setSenha(usersenha.getText().toString().trim());
                        dadosresponsavel.isTipoDeCadastro();
                        cadastrarResponsavel();
                    }
                    else
                    if(rb2.isChecked()){
                        Dadosmotorista = new Dadosmotorista();
                        Dadosmotorista.setNome(tNome.getText().toString().trim());
                        Dadosmotorista.setCidade(tCidade.getText().toString().trim());
                        Dadosmotorista.setTelefone(tTelefone.getText().toString().trim());
                        Dadosmotorista.setEmail(useremail.getText().toString().trim());
                        Dadosmotorista.setSenha(usersenha.getText().toString().trim());
                        Dadosmotorista.isTipoDeCadastro();
                        cadastrarMotorista();
                    }
                }
            });

我看不出您将复选框总数发送到目标碎片的位置。我的问题是,我只想将选中的复选框数添加到对象习惯的整数总数中。chk代表什么?我的想法是从MyViewHolder类中获取复选框视图(chk)。
 btnCadastro.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(rb1.isChecked()){
                        dadosresponsavel = new Dadosresponsavel();
                        dadosresponsavel.setNome(tNome.getText().toString().trim());
                        dadosresponsavel.setCidade(tCidade.getText().toString().trim());
                        dadosresponsavel.setTelefone(tTelefone.getText().toString().trim());
                        dadosresponsavel.setEmail(useremail.getText().toString().trim());
                        dadosresponsavel.setSenha(usersenha.getText().toString().trim());
                        dadosresponsavel.isTipoDeCadastro();
                        cadastrarResponsavel();
                    }
                    else
                    if(rb2.isChecked()){
                        Dadosmotorista = new Dadosmotorista();
                        Dadosmotorista.setNome(tNome.getText().toString().trim());
                        Dadosmotorista.setCidade(tCidade.getText().toString().trim());
                        Dadosmotorista.setTelefone(tTelefone.getText().toString().trim());
                        Dadosmotorista.setEmail(useremail.getText().toString().trim());
                        Dadosmotorista.setSenha(usersenha.getText().toString().trim());
                        Dadosmotorista.isTipoDeCadastro();
                        cadastrarMotorista();
                    }
                }
            });