Domanda

Per favore aiutami su questo, sto cercando di produrre 2 pulsanti di radio in un ciclo per loop in modo dinamico a seconda dell'ingresso dell'utente che voglio è avere pulsanti di radio come

*PULLY RADIO1 *RADIOBUTTON2

*PULLY RADIO1 *RADIOBUTTON2

*PULLY RADIO1 *RADIOBUTTON2

*PULLY RADIO1 *RADIOBUTTON2

. . .

.

E così via .. a seconda del ciclo!

Ecco lo snippet del mio codice, funziona solo per 2 pulsanti di radio in una sola riga, ma quando aumento il valore del conteggio. . Ricevo l'errore di runtime Android di RADIOGROUP Child che ha già un genitore. :S

List<RadioGroup> allradioGroup = new ArrayList<RadioGroup>();
RadioGroup radioGroup;

List<RadioButton> allRadio = new ArrayList<RadioButton>();
RadioButton radioButton;

        for (int i = 0; i < count; i++) {

        /* Defining RadioGroup */
        radioGroup = new RadioGroup(this);
        radioGroup.setOrientation(RadioGroup.HORIZONTAL);

        allradioGroup.add(radioGroup);


        /* Displaying Radio Buttons */
        for (int j = 0; j < 2; j++) {
            radioButton = new RadioButton(this);
            radioButton.setTextColor(getResources().getColor(R.color.grey));
            radioButton.setId((j + 100));

            allRadio.add(radioButton);

            if (allRadio.get(j).getId() == 100) {
                radioButton.setText("private");
            } else if (allRadio.get(j).getId() == 101) {
                radioButton.setText("public");
            }

                allradioGroup.get(i).addView(allRadio.get(j), j,
                        layoutParams);
        }

        linear.addView(allradioGroup.get(i));

    }

Per favore aiuto. Grazie

È stato utile?

Soluzione

Il tuo problema è questa riga: "Allradiogroup.get (i) .AddView (Allradio.get (J), J, LayoutParams);"

Il parametro J sarà nell'intervallo 0-1, anche quando crei la tua seconda riga. Stai cercando di utilizzare Allradio.get (j) che nella seconda corsa restituirà il primo pulsante di opzione creato (che ha già un genitore). Per risolvere questo problema, sostituire "J" con: "I*2+J". Questo dovrebbe risolverlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top