Autore Topic: Aggiungere dei RadioButton dinamicamente a un RadioGroup  (Letto 1183 volte)

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Aggiungere dei RadioButton dinamicamente a un RadioGroup
« il: 11 Dicembre 2010, 14:06:38 CET »
0
Salve a tutti!

Sono bloccato da 2 giorni su un problema che forse non può essere risolto con Android, visto che non ho smesso di cercare su Internet e non trovo nulla.
Praticamente creo dinamicamente dei RadioButton che attacco a un LinearLayout insieme ad altri TextView e vorrei mettere quei RadioButton assieme dentro un RadioGroup solo per usufruire della proprietà di scelta mutuamente esclusiva.
Il problema è che essendo i RadioButton già appartenenti a una View (in questo caso il LinearLayout), non funziona, viene sollevata l'eccezione seguente:
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Se io togliessi il RadioButton dal LinearLayout, non riuscirei più a posizionarlo al posto voluto!
Qualcuno ha qualche esperienza da condividere sull'argomento??
 

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Aggiungere dei RadioButton dinamicamente a un RadioGroup
« Risposta #1 il: 11 Dicembre 2010, 20:04:50 CET »
0
Boh, temo di non aver capito qual è il problema, perché non mi è chiaro come mai non inserisci direttamente i RadioButton all'interno del RadioGroup.

Per capirci, mi domando perché non fai una cosa del genere:

Codice (Java): [Seleziona]
        LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout01);
        RadioGroup rg = new RadioGroup(this);
       
        RadioButton rb1 = new RadioButton(this);
        RadioButton rb2 = new RadioButton(this);
        RadioButton rb3 = new RadioButton(this);
       
        rb1.setText("1");
        rb2.setText("2");
        rb3.setText("3");
       
        rg.addView(rb1);
        rg.addView(rb2);
        rg.addView(rb3);
       
        ll.addView(rg);
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Re:Aggiungere dei RadioButton dinamicamente a un RadioGroup
« Risposta #2 il: 11 Dicembre 2010, 23:51:43 CET »
0
Boh, temo di non aver capito qual è il problema, perché non mi è chiaro come mai non inserisci direttamente i RadioButton all'interno del RadioGroup.

Per capirci, mi domando perché non fai una cosa del genere:

Codice (Java): [Seleziona]
        LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout01);
        RadioGroup rg = new RadioGroup(this);
       
        RadioButton rb1 = new RadioButton(this);
        RadioButton rb2 = new RadioButton(this);
        RadioButton rb3 = new RadioButton(this);
       
        rb1.setText("1");
        rb2.setText("2");
        rb3.setText("3");
       
        rg.addView(rb1);
        rg.addView(rb2);
        rg.addView(rb3);
       
        ll.addView(rg);
Ciao JD!
Come hai scritto tu sicuramente va bene! Ma non è quello che voglio. Io vorrei potere mettere i RadioButton dove voglio nel layout e poi fare in modo che siano mutuamente esclusivi. Se li metto dentro il RadioGroup dopo poi non riesco più a posizionarli.
Per esempio se devo avere delle righe in cui c'è prima il testo e poi un RadioButton. Non riesco a posizionare bene i RadioButton se li metto prima nel RadioGroup.

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Aggiungere dei RadioButton dinamicamente a un RadioGroup
« Risposta #3 il: 12 Dicembre 2010, 00:05:00 CET »
0
Capisco, l'unica soluzione che mi viene in mente è inserire il testo direttamente dentro il RadioGroup:

Codice (Java): [Seleziona]
        LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout01);
        RadioGroup rg = new RadioGroup(this);
       
        RadioButton rb1 = new RadioButton(this);
        RadioButton rb2 = new RadioButton(this);
        RadioButton rb3 = new RadioButton(this);
       
        TextView tv = new TextView(this);
       
        rb1.setText("1");
        rb2.setText("2");
        rb3.setText("3");
       
        tv.setText("Testo tra due radiobutton");
       
        rg.addView(rb1);
        rg.addView(tv);
        rg.addView(rb2);
        rg.addView(rb3);
       
        ll.addView(rg);
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline balorel

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu
Re:Aggiungere dei RadioButton dinamicamente a un RadioGroup
« Risposta #4 il: 12 Dicembre 2010, 00:13:34 CET »
0
Capisco, l'unica soluzione che mi viene in mente è inserire il testo direttamente dentro il RadioGroup:

Codice (Java): [Seleziona]
        LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout01);
        RadioGroup rg = new RadioGroup(this);
       
        RadioButton rb1 = new RadioButton(this);
        RadioButton rb2 = new RadioButton(this);
        RadioButton rb3 = new RadioButton(this);
       
        TextView tv = new TextView(this);
       
        rb1.setText("1");
        rb2.setText("2");
        rb3.setText("3");
       
        tv.setText("Testo tra due radiobutton");
       
        rg.addView(rb1);
        rg.addView(tv);
        rg.addView(rb2);
        rg.addView(rb3);
       
        ll.addView(rg);


Grazie per il tuo aiuto!
Non sapevo neanche che fosse possibile quello che mi hai appena fatto vedere (testo dentro il RadioGroup). Proverò altre cose per vedere se riesco ad avvicinare quello che in realtà volevo fare!

Thanks