Ich habe ein Layout, das eine leere RadioGroup
enthält. (Ich denke, das ist der Unterschied zwischen dieser Frage und andere, die gestellt wurden - ich bereits die leere Radiogroup in meinem Layout an der richtigen Stelle hat)Füllen Sie eine RadioGroup mit RadioButtons aus einem String-Array
Ich mag diese RadioGroup
füllen mit dem item
s von einem string-array
das habe ich in strings.xml
definiert.
Das Array in strings.xml
sieht wie folgt aus:
<string-array name="currency_symbols">
<item>$ - Dollar</item>
<item>€ - Euro</item>
<item>£ - Pound</item>
<item>¥ - Yen</item>
<item># - Other</item>
</string-array>
Ich versuche dann auf die RagioGroup mit teh nach einem RadioButton
und fügen Sie es zu schaffen:
RadioGroup currencySettingRadioGroup = (RadioGroup) settings_dialog.findViewById(R.id.rg_currency_symbol);
currencySettingRadioGroup.removeAllViews();
RadioButton rb = new RadioButton(this);
String[] currency_symbols_options_array = getResources().getStringArray(R.array.currency_symbols);
for (String this_currency_option: currency_symbols_options_array) {
rb.setText(this_currency_option);
currencySettingRadioGroup.addView(rb);
}
Der currencySettingRadioGroup.removeAllViews();
hinzugefügt wurde, weil ich bekomme den folgenden Fehler, aber es macht keinen Unterschied:
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Die Linie, die offenbar das Problem verursacht, ist die currencySettingRadioGroup.addView(rb);
Linie ...
Wie mache ich das richtig?
(Ich habe bei Create RadioButton Dynamically with String Array sah und die http://android.okhelp.cz/create-radiobutton-radiogroup-dynamically-android-sample/ verwies aber kann nicht scheinen, etwas zu bekommen zu arbeiten)
Sie müssen dieses Spiel setzen 'RadioButton- rb = new RadioButton- (this);' in Ihrer 'for' Schleife – Barns
Nun, das es fest ist, aber ich kann nicht Finde heraus, warum ... indem du dies in die Schleife legst, ist eine neue Instanz des 'rb' Objektes, das auf jeder Schleife erzeugt wird, aber mit demselben Namen? –
Wenn Sie diese Zeile außerhalb der Schleife haben, erstellen Sie nur eine Instanz eines RadioButtons. Und diese eine Instanz (ein eindeutiges Objekt) wurde der RadioGroup mehrmals hinzugefügt, wodurch ein Fehler erzeugt wurde. – Barns