【问题标题】:How to get checked RadioButtons according to IDs of dynamically generated RadioGroups如何根据动态生成的 RadioGroup 的 ID 获取选中的单选按钮
【发布时间】:2016-09-01 09:58:32
【问题描述】:

我已经为从数据库中获取的问题动态生成了多个 RadioGroups,并且我还连续为 RadioGroups 分配了 ID。

现在,我想从所有 RadioGrouips 中获取所有选中的 RadioButton,以便将它们存储在数据库中。

如何获取与每个 RadioGroup ID 相关的所有这些 RadioGroup 及其选中的 RadioButton?

任何解决方案的尝试将不胜感激!

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());
        }

【问题讨论】:

  • getId() 只返回最后一个 RadioGroup 的 ID @NongthonbamTonthoi 我需要所有的 ID

标签: android radio-button radio-group android-radiogroup


【解决方案1】:

这样做:

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

        }
     });

【讨论】:

  • 我需要的是所有生成的 RadioGroups 的 ID
  • 好的,现在,我如何在所有 RadioGroups 中获取选中的 RadioButtons?
  • 然后创建另一个列表来存储它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-31
  • 2012-11-05
  • 2017-06-20
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
相关资源
最近更新 更多