如何在android中从动态复选框和单选按钮中获取值

如何在android中从动态复选框和单选按钮中获取值,android,android-checkbox,android-radiobutton,Android,Android Checkbox,Android Radiobutton,根据我创建的动态布局,我得到了下面的Json响应。我可以创建动态复选框和单选按钮,但无法从这些动态复选框和单选按钮中获取值。我试图在单击按钮时获取复选框的实例,但无法获取值。我唯一得到这些值的时间是在复选框上设置checkedchangelistener。如何从复选框和单选按钮中获取值 [ { “QId”:15, “问题”:“你服用过药物吗?”, “输入类型”:“cb”, “NoOfInputs”:“2”, “问题选项”:[ “是的”, “没有” ] }, { “QId”:16, “问题”:“

根据我创建的动态布局,我得到了下面的Json响应。我可以创建动态复选框和单选按钮,但无法从这些动态复选框和单选按钮中获取值。我试图在单击按钮时获取复选框的实例,但无法获取值。我唯一得到这些值的时间是在复选框上设置checkedchangelistener。如何从复选框和单选按钮中获取值

[
{
“QId”:15,
“问题”:“你服用过药物吗?”,
“输入类型”:“cb”,
“NoOfInputs”:“2”,
“问题选项”:[
“是的”,
“没有”
]
},
{
“QId”:16,
“问题”:“单选按钮测试问题”,
“输入类型”:“rb”,
“NoOfInputs”:“4”,
“问题选项”:[
“是的”,
“不”,
“可能是”,
“可能不是”
]
}
]
public class nextractivity扩展了AppCompativity活动{
私人按钮;
专线线性布局,新建CBLL;
私有模型;
私有LinkedHashMap mappy=新LinkedHashMap();
私有ArrayList ArrayList=新ArrayList();
私有ArrayList dynamolist=新ArrayList();
private ArrayList optionlist=新建ArrayList();
专用静态int-arraycout;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.mainact);
arraycout=0;
线性=(线性布局)findViewById(R.id.linear);
按钮=(按钮)findViewById(R.id.button);
GetAllQuestion();
模型=新模型();
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
System.out.println(“sammy\u total\u count:+arraycout”);
对于(int i=0;i 0){
for(int j=0;j迭代器=set.iterator();
while(iterator.hasNext()){
Map.Entry me=(Map.Entry)迭代器.next();
/*System.out.print(me.getKey()+“:”);
System.out.println(me.getValue())*/
newcbll=新的线性布局(NextActivity.this);
LinearLayout.LayoutParams lparams=新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_父项,LinearLayout.LayoutParams.WRAP_内容);
newcbll.setLayoutParams(lparams);
复选框=新复选框(NextActivity.this);
LinearLayout.LayoutParams checkparams=新建LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_内容,LinearLayout.LayoutParams.WRAP_内容);
checkBox.setLayoutParams(checkparams);
setId(Integer.parseInt(me.getKey().toString());
checkBox.setText(me.getValue().toString());
setOnCheckedChangeListener(handleCheck(复选框));
newcbll.addView(复选框);
linear.addView(newcbll);
}
}
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
RequestQueue RequestQueue=Volley.newRequestQueue(NextActivity.this);
添加(stringRequest);
}
private CompoundButton.OnCheckedChangeListener handleCheck(最终复选框chk){
返回新的CompoundButton.OnCheckedChangeListener(){
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
如果(已检查){
System.out.println(“sammy_cblistener”+buttonView.getText());
}
}
};
}

}
为什么要在单击按钮时获取复选框实例?您只需要知道用户选择的答案,对吗?更新数据结构(Arraylist)在每个选中的更改事件上,并对其进行操作。与listview的情况一样,如果我们知道位置,我们可以从模型类中获取其他详细信息。我想知道我在
模型
类中输入的其他详细信息。如果用户选择“是”从第一个数组中,如何将
Qid
设置为15?不要将for循环中的j设置为mappy hashmap中的键,而是使用Qid作为键。然后从checkedchangelistener中,您可以检索Qid作为compundbutton的标记。您能告诉我怎么做吗?