Radiobuttons dynamisch in einer Tabelle

  • 7 Antworten
  • Neuester Beitrag
Diskutiere Radiobuttons dynamisch in einer Tabelle im Android App Entwicklung im Bereich Betriebssysteme & Apps.
C

crystal

Ambitioniertes Mitglied
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:
ChrisiBoy

ChrisiBoy

Erfahrenes Mitglied
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
 
T

toomuchcoffeeman

Ambitioniertes Mitglied
Code:
row.addView(rb[j]);
// ...
rg.addView(rb[j]);
doppelt? View bereits vergeben? (nur mal so dahingeraten)
 
C

crystal

Ambitioniertes Mitglied
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
 
T

toomuchcoffeeman

Ambitioniertes Mitglied
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
 
S

swordi

Lexikon
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
 
C

crystal

Ambitioniertes Mitglied
Danke schon mal für die Antworten :)
Werde das nachher testen und das Ergebnis posten.

Gesendet von meinem Nexus 4 mit Tapatalk 2
 
C

crystal

Ambitioniertes Mitglied
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 - Radiobuttons dynamisch in einer Tabelle Antworten Datum
3
Ähnliche Themen
App Name dynamisch ändern