在动态RadioGroup android中未调用Radiogroup checkChangedListerner

时间:2019-03-04 12:14:35

标签: android

我正在使用动态RadioGroup,并且每次点击都会调用RadioButton。 我在要初始化所有OnCheckedChangedListener的for循环中使用RadioGroup。谁能告诉我在动态RadioGroup中调用RadioButtons的正确方法是什么。谢谢

for (int i = 0; i < radioGroupSizeList.size(); i++) {
  final RadioGroup radioGroup = radioGroupSizeList.get(i);
  final int radioGroupId = radioGroupSizeList.get(i).getId();

  radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(RadioGroup group, int checkedId) {
          if (group.getId() == radioGroupId) {
              int rb = radioGroup.getCheckedRadioButtonId();

              List<RadioButton> radioButtonsList = radioMap.get(radioGroupId);
              for (int k = 0; k < radioButtonsList.size(); k++) {
                  RadioButton radioButton = radioButtonsList.get(k);

                  String getTextRadio = radioButton.getText().toString();
                  int radioButtonId = radioButtonsList.get(k).getId();
                  if (rb == radioButtonId) {
                      sizeList = allSizesVariations.get(radioGroupId);
                      for (int i = 0; i < sizeList.size(); i++) {
                          String size = sizeList.get(i).getName();

                          TextView textView = (TextView) group.getChildAt(i);
                          textView.setTextColor(getResources().getColor(R.color.Black));
                          if (getTextRadio.equalsIgnoreCase(size)) {
                              size_attribute_id = sizeList.get(i).getId();
                              TextView textView1 = (TextView) group.getChildAt(i);
                              textView1.setTextColor(getResources().getColor(R.color.white));
                              GeneralFunctions.showToast(DetailActivity.this, String.valueOf(size_attribute_id));

                          }

                      }

                  }
              }
          }
      }
  });
}

1 个答案:

答案 0 :(得分:0)

这是首选吗?如果是这样,我建议您将Preferences-API与onSharedPreferenceChangeListener一起使用。这样,您可以检查密钥是否等于所讨论的特定Radio视图的密钥集,甚至是它的值,然后执行实际上,即使没有实际的首选项,您仍然可以利用它来实现解决方案。