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