Java 如何在android中获取多个复选框的值并将值发送到服务器
我正在安卓工作室做一个程序。我试图从多个复选框(35)中获取值,并将它们放入JSON中,以便将其发送到服务器。 以下是获取复选框所选值的Java 如何在android中获取多个复选框的值并将值发送到服务器,java,android,json,checkbox,Java,Android,Json,Checkbox,我正在安卓工作室做一个程序。我试图从多个复选框(35)中获取值,并将它们放入JSON中,以便将其发送到服务器。 以下是获取复选框所选值的SetMethod: private void setExtensionForwardNumber(){ priorityResponse.priorityOne.getTimeTable().mon = verifyCheckbox(priorityOneMon); priorityResponse.priorityOne.getTimeTa
SetMethod
:
private void setExtensionForwardNumber(){
priorityResponse.priorityOne.getTimeTable().mon = verifyCheckbox(priorityOneMon);
priorityResponse.priorityOne.getTimeTable().tue = verifyCheckbox(priorityOneTue);
priorityResponse.priorityOne.getTimeTable().wed = verifyCheckbox(priorityOneWed);
priorityResponse.priorityOne.getTimeTable().thu = verifyCheckbox(priorityOneThur);
priorityResponse.priorityOne.getTimeTable().fri = verifyCheckbox(priorityOneFri);
priorityResponse.priorityOne.getTimeTable().sat = verifyCheckbox(priorityOneFri);
priorityResponse.priorityOne.getTimeTable().sun = verifyCheckbox(priorityOneSun);
String s = priorityResponse.toJsonObject();
setForwardExternalFragment(s);
}
以下是验证复选框是否选中的函数:
private boolean verifyCheckbox(CheckBox checkbox) {
boolean selected = checkbox.isChecked();
if(selected)
checkbox.setChecked(true);
else
checkbox.setChecked(false);
return selected;
}
我尝试不使用函数verifyCheckbox
,并且使用了checkbox.isChecked()
,但得到了相同的结果
priorityResponse.priorityOne.getTimeTable().tue = priorityOneTue.isChecked();
问题是,当我在服务器上接收到值时,会得到混合值。示例:如果我在服务器上选中mon、wed、fri、sun,则所选值为:mon、tue、wed、thu、sun。我哪里出错了?做一件事。在每个复选框上附加一个检查侦听器,并将复选框值附加到全局变量。并将附加值发送到服务器
String str; //global variable.
priorityOneTue = (CheckBox)findViewById(R.id.priorityOneTue);
priorityOneTue.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
str += "tue";
}
});
然后将str发送到服务器
setForwardExternalFragment(str);
但我有35个复选框。我不认为这是对每个复选框进行编码的好方法。如果你需要每个复选框的顺序,这是正确的编码方式。我希望我给出的答案就是你想要的答案。谢谢,还是不行。我认为问题在于如何将数据放入JsonObject。