我已经为从数据库中提取的问题动态生成了多个RadioGroup,并且我还连续地为RadioGroups分配了ID。
现在,我想从所有RadioGrouips中获取所有已检查的RadioButton,以便将它们存储在数据库中。
如何获取与每个RadioGroup ID相关的所有这些RadioGroup及其检查的RadioButtons?
任何尝试解决方案都将不胜感激!
if (c.moveToFirst()) {
do {
String question = c.getString(1);
String option1 = c.getString(2);
String option2 = c.getString(3);
String option3 = c.getString(4);
// add text view
qtxt = new TextView(getApplicationContext());
counter4q += 1;
qtxt.setId(counter4q);
qtxt.setText(question);
qtxt.setTextSize(15);
qtxt.setTextColor(getResources().getColor(R.color.black, null));
ll.addView(qtxt);
questions.add(qtxt.getText().toString());
Log.d("arrayq",questions.toString());
Log.d("question", qtxt.getText().toString());
String qid = String.valueOf(counter4q);
Log.d("questionid", qid);
//create the RadioGroup
rg = new RadioGroup(getApplicationContext());
rg.setOrientation(RadioGroup.VERTICAL);
counter4rg += 1;
rg.setId(counter4rg);
rgIDs.add(String.valueOf(rg.getId()));
Log.d("arrayrgid", rgIDs.toString());
Log.d("rg", String.valueOf(rg.getId()));
String rgid = String.valueOf(counter4rg);
Log.d("rgid", rgid);
//add radio buttons
o1 = new RadioButton(getApplicationContext());
o2 = new RadioButton(getApplicationContext());
o3 = new RadioButton(getApplicationContext());
counter4rb += 1;
o1.setId(counter4rb);
Log.d("o1", o1.getText().toString());
String o1id = String.valueOf(counter4rb);
Log.d("o1id", o1id);
counter4rb += 1;
o2.setId(counter4rb);
Log.d("o2", o2.getText().toString());
String o2id = String.valueOf(counter4rb);
Log.d("o2id", o2id);
counter4rb += 1;
o3.setId(counter4rb);
Log.d("o3", o3.getText().toString());
String o3id = String.valueOf(counter4rb);
Log.d("o3id", o3id);
o1.setText(option1);
o2.setText(option2);
o3.setText(option3);
o1.setTextColor(getResources().getColor(R.color.black, null));
o2.setTextColor(getResources().getColor(R.color.black, null));
o3.setTextColor(getResources().getColor(R.color.black, null));
//the RadioButtons are added to the radioGroup instead of the layout
rg.addView(o1);
rg.addView(o2);
rg.addView(o3);
//you add the whole RadioGroup to the layout
ll.addView(rg);
} while (c.moveToNext());
}
答案 0 :(得分:0)
这样做:
int o1_Id = o1.getId();
int o2_Id = o2.getId();
int o3_Id = o3.getId();
获取RadioGroups的所有ID以创建列表:
List<Integer> ids = new ArrayList<>();
然后添加ID:
ids.add(counter4rg);
获得:
for( int i=0; i< ids.size(); i++) {
System.out.println(ids.get(i));
}
要检查RadioButtions:
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int selectedId) {
RadioButton radioButton = (RadioButton) findViewById(selectedId);
//add to your list
}
});