-1
rd1 = (RadioButton) findViewById(R.id.rd1); 
rd2 = (RadioButton) findViewById(R.id.rd2); 
rd3 = (RadioButton) findViewById(R.id.rd3); 
rd4 = (RadioButton) findViewById(R.id.rd4); 

RadioGroup rg = new RadioGroup(this); 
rg.addView(rd1); 
rg.addView(rd2); 
rg.addView(rd3); 
rg.addView(rd4); 
rd1.setChecked(true); 

Der Fehler ist: Sie RemoveView aufrufen müssen() auf der Eltern Kind zuerst .... Irgend jemand mir helfen ...Fehler Radiobutton Radiogruppe hinzufügen - RemoveView()

+0

Wenn die 'RadioButton' in Ihrem Layout definiert sind, warum nicht einfach sie in eine 'RadioGroup' dort legen? Warum versuchen Sie das im Code zu tun? –

+0

Da sich jeder Radiobutton in einer anderen Tabellenzeile befindet. Es ist so ein Quiztest. Kannst du mir die Lösung helfen .. –

+0

Schau mal hier nach Ideen: http://stackoverflow.com/questions/10461005/how-to-group-radiobutton-from-different-linearlayouts –

Antwort

2

Das Problem Ihre Ansichten werden in XML erstellt (deshalb müssen Sie findViewById verwenden)

Das bedeutet, dass sie bereits an den übergeordneten Knoten in der XML-Struktur angehängt sind, in der Sie sie definiert haben.

Sie haben zwei Möglichkeiten:

Der richtige Weg ist, um die Radiogroup in der XML zu definieren, entweder mit den Radios innen, oder dann programmatisch erstellen und fügen Sie die Radios

oder schlecht (schnell, aber Hacky) Weg ist:

rd1 = (RadioButton) findViewById(R.id.rd1); 
... 

((ViewGroup) rd1.getParent()).removeView(rd1); 
... 

RadioGroup rg = new RadioGroup(this); 
rg.addView(rd1); 
... 
rd1.setChecked(true); 
+0

Das Problem ist mein Radio Buttons ist in verschiedene TableRow. Habe ich irgendeine Lösung? :( –

Verwandte Themen