В группе переключателей выбираются две кнопки.
Я не знаю, где я ошибаюсь. Пожалуйста, помогите мне.
final RadioGroup rg=new RadioGroup(Survay_MainActivity.this);
rg.clearCheck();
rg.setId(Integer.valueOf(entry1.getKey()));
Log.v("rg getid", "rg"+rg.getId());
for(int i =0;i<values.size();i++){
// Create Button
final RadioButton btn = new RadioButton(Survay_MainActivity.this);
btn.setId(i);
btn.setTextColor(Color.parseColor("#000000"));
btn.setBackgroundColor(Color.TRANSPARENT);
btn.setGravity(Gravity.LEFT);
btn.setText(values.get(i));
rg.addView(btn);
btn.setLayoutParams(params);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
JSONObject quesAns = new JSONObject();
String ans=btn.getText().toString().trim();
try {
quesAns.put(String.valueOf(rg.getId()), ans);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jsonarray.put(quesAns);
Log.v("jsonarray", "jsonarray"+jsonarray);
}
});
}
views.addView(rg);
1) Я создаю RadioGroup вне цикла.
2) Добавление переключателя в RadioGroup в цикле for
3) Когда цикл завершается, RadioGroup добавляется к linerlayout.
final
на самом деле полезен, но не в этом случае - вы получаете ту же кнопку, которая передается методуonClick
, поэтому лучше используйте ее. Затем вы должны использоватьonCheckChangeListener
для RadioGroup вместоonclick
для RadioButton. Я не знаю, почему две отмеченные кнопки, но попробуйте сначала исправить эти две проблемы. О, и обе группы, похоже, имеют одинаковый идентификатор. - person Marius   schedule 01.08.2014