Radiobuttons dynamisch in einer Tabelle

C

crystal

Ambitioniertes Mitglied
9
Hallo,

und zwar möchte ich in einer Tabelle, die dynamisch erstellt wird, radiobuttons hinzufügen.
Die Radiobuttons sollten aber in einer group sein, damit immer nur einer gecheked werden kann.

Hier mein Code:
Code:
JSONArray AufgObj = json.getJSONArray(TAG_AUF_UEBERSICHT); // JSON
			TableLayout tl = (TableLayout) findViewById(R.id.TableLayout1);
			 TableRow row ;
			RadioButton[] rb = new RadioButton[AufgObj.length()];
			TextView t1, t2, t3, t4;
			
			RadioGroup rg = new RadioGroup(this);
			
			for (int j = 0; j < AufgObj.length(); j++) {
				JSONObject product = AufgObj.getJSONObject(j);

				row = new TableRow(this);
				rb[j] = new RadioButton(this);

				t1 = new TextView(this);
				t2 = new TextView(this);
				t3 = new TextView(this);
				t4 = new TextView(this);

				t1.setText(product.getString(TAG_AID));
				t2.setText(product.getString(TAG_AUFGABEN));
				t3.setText(product.getString(TAG_WERT));
				t4.setText(product.getString(TAG_MINUTEN));

				row.addView(rb[j]);

				row.addView(t1);
				row.addView(t2);
				row.addView(t3);
				row.addView(t4);
				rg.addView(rb[j]);
				tl.addView(row, new TableLayout.LayoutParams(
						LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
---------------------------------------------------------------------

Ich bekomme folgenden Fehler:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Wenn ich "rg.addView(rb[j]);" weg lasse bekomme ich auch die Radiobottuns und den Text angezeigt, nur nicht in einer Gruppe, also können alle Buttons geklickt werden.
 
Zuletzt bearbeitet von einem Moderator:
Ich weiß jetzt nicht genau wie du dir das am Ende vorstellst aber wäre es in deinem Fall nicht möglich ein ListView zu verwenden?

Sent from my GT-I9100 using Android-Hilfe.de App
 
Code:
row.addView(rb[j]);
// ...
rg.addView(rb[j]);

doppelt? View bereits vergeben? (nur mal so dahingeraten)
 
Ist das ein Problem?
Weil zuerst wollte ich die buttons zu der group hinzufügen und danach der jeweiligen Zeile.

Gesendet von meinem Nexus 4 mit Tapatalk 2
 
Errr... keine Ahnung ob das ein Problem ist. Habe wie gesagt nur geraten.
Wenn der Fehler aber dadurch kommt, dann ja, dann ist es ein Problem. Darüber hinaus würde es auch erklären, warum der Code ohne Fehler daherkommt, wenn Du eine der beiden doppelen Zuweisungen auskommentierst...

Bin mir aber sicher, dass es eine andere Lösung dafür gibt. Ich meine mich dunkel daran zu erinnern, dass AWT und Swing das irgendwie mit einer Funktion der Group gemacht haben. Also irgendwie sowas mit ButtonGroup.AddComponent(checkButton1) ... schau doch mal, ob Dir solche Funktionen geboten werden
 
ja das ist ein problem. die fehlermeldung sagt ja

" The specified child already has a parent."

du kannst eine element nur zu einem parent hinzufügen.

Der ursprüngliche Beitrag von 09:37 Uhr wurde um 09:38 Uhr ergänzt:

du kannst den button zur group hinzufügen.

aber zur zeile musst dann die group geben und nicht wieder den button
 
Danke schon mal für die Antworten :)
Werde das nachher testen und das Ergebnis posten.

Gesendet von meinem Nexus 4 mit Tapatalk 2
 
Also eine Funktion mit Addcomponent wird mir nicht geboten.

Wenn ich es so mache:

Code:
	rg.addView(rb[j]);
		row.addView(rg);
Bekomme ich wieder den gleichen Fehler wie im Startpost und es sieht so aus:
Screenshot_2013-04-29-17-47-10.png

So sollte es aussehen:

Screenshot_2013-04-29-17-52-19.png

Nur das halt die Buttons in einer Gruppe sind und damit nur einzeln ausgewählt werden können. :/
 

Ähnliche Themen

R
Antworten
6
Aufrufe
1.016
swa00
swa00
D
  • Data2006
Antworten
14
Aufrufe
495
jogimuc
J
OnkelLon
Antworten
13
Aufrufe
1.987
OnkelLon
OnkelLon
Zurück
Oben Unten