使用for循环动态创建时获取CheckBox ID和文本

时间:2017-04-16 13:33:25

标签: android android-studio checkbox

我有一个Button,问题和使用for循环动态创建的多个复选框,看起来像pic

这就是我获取所有数据的方式以及我如何创建问题以及checkBoxes

try {
JSONArray jsonArray = response.getJSONArray("values");

for (int i = 0; i < jsonArray.length(); i++) {
 JSONObject category = jsonArray.getJSONObject(i);
 categoryTxt = category.getString("category");
 Log.v("category", categoryTxt);

 //create Question
 TextView title = new TextView(FactorsActivity.this);
 title.setTextSize(20);
 title.setId(i);
 title.setText(categoryTxt);
 title.setTextColor(Color.BLUE);
 mLinearLayout.addView(title);

 JSONArray factors = category.getJSONArray("factors");

 Log.v("size factors", String.valueOf(factors.length()));
 nameArray = new String[factors.length()];
 for(int j = 0; j < factors.length(); j++)
 {
  JSONObject factorsObj = factors.getJSONObject(j);
  id = factorsObj.getString("id");
  //Log.v("id", id);
  name = factorsObj.getString("name");
  // Log.v("name", name);

  nameArray[j] = name;

  checkBox = new CheckBox(FactorsActivity.this);
  checkBox.setId(Integer.parseInt(id));
  checkBox.setText(nameArray[j]);
  mLinearLayout.addView(checkBox);

 }
}

现在我的主要目标是,如果我选中是每日框,我点击提交。当我点击提交时,我希望获得所有选中的复选框信息,例如问题,其ID和文本。这里的信息应该是

  1. 问题:头痛复发
  2. 复选框ID:数字
  3. 复选框文字:每天 非常感谢。

1 个答案:

答案 0 :(得分:0)

就像使用name一样,在数组中存储对动态创建的CheckBox项的引用,如下所示:

checkboxArray[j] = checkBox;

然后遍历此数组以获取CheckBox ID及其文本。