Две радиопереключатели были выбраны в групповой кнопке в Android Studio - PullRequest
0 голосов
/ 02 марта 2020

Я создал приложение, используя Android Studio, и одно из его заданий содержит вопросы и их выбор с помощью радиокнопок. Я создал эти групповые кнопки и радиокнопки программно, но первый вопрос может выбрать две радиокнопки, когда этого не должно быть.

enter image description here

Это мой код:

FeedbackFragment. java

try {
    loading.setVisibility(View.GONE);

    JSONObject jsonObject = new JSONObject(response);
    if (!jsonObject.isNull("questions")) {
        JSONArray questions = jsonObject.getJSONArray("questions");

        LinearLayout.LayoutParams params;
        for (int i = 0; i < questions.length(); i++) {
            final JSONObject oneQuestion = questions.getJSONObject(i);
            if (!oneQuestion.isNull("answers")) {
                TextView textQuestion = new TextView(getActivity());
                params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                                            LinearLayout.LayoutParams.WRAP_CONTENT);
                textQuestion.setLayoutParams(params);

                textQuestion.setText(oneQuestion.getString("question_text"));

                if(textQuestion.getParent() != null) {
                    ((ViewGroup) textQuestion.getParent()).removeView(textQuestion);
                }

                layoutFeedback.addView(textQuestion);

                groupChoice = new RadioGroup(getActivity());
                params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                                            LinearLayout.LayoutParams.WRAP_CONTENT);
                params.setMargins(0,0,0,20);
                groupChoice.setLayoutParams(params);
                                    groupChoice.setId(Integer.valueOf(oneQuestion.getString("question_id")));

                groupChoices.add(groupChoice);

                if(groupChoice.getParent() != null) {
                    ((ViewGroup) groupChoice.getParent()).removeView(groupChoice);
                }

                layoutFeedback.addView(groupChoice);

                JSONArray choices = oneQuestion.getJSONArray("answers");
                for(int j=0;j<choices.length();j++) {
                    JSONObject choice = choices.getJSONObject(j);

                    radioChoice = new RadioButton(getActivity());

           radioChoice.setId(Integer.valueOf(choice.getString("answer_id")));

                    radioChoice.setText(choice.getString("answer_text"));
                    radioChoice.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                    radioChoice.setButtonTintList(new ColorStateList(
                        new int[][]{
                            new int[]{-android.R.attr.state_enabled}, //disabled
                            new int[]{android.R.attr.state_enabled} //enabled
                        },
                        new int[] {
                            Color.BLACK //disabled
                                                        ,getResources().getColor(R.color.colorPrimary) //enabled
                                                    }
                    ));

                    groupChoice.addView(radioChoice);
                }

                LinearLayout borderBottom = new LinearLayout(getActivity());
                params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                                            1);
                params.setMargins(0, 0, 0, 20);
                borderBottom.setLayoutParams(params);

                borderBottom.setBackgroundColor(Color.parseColor("#999999"));

                    borderBottom.setVerticalGravity(Gravity.BOTTOM);
                    layoutFeedback.addView(borderBottom);
                }
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
        Toast.makeText(getActivity(), "Error JSON Exception! " + e.toString(), Toast.LENGTH_SHORT).show();
        loading.setVisibility(View.GONE);
}

Странно то, что это произошло только при первом вопросе, другой вопрос работал нормально. Что пошло не так? Пожалуйста, помогите.

...