我的布局包含空RadioGroup
。 (我认为这是问题和其他问题的区别 - 我的布局中已经有空的RadioGroup在正确的位置)
我想使用我在RadioGroup
中定义的item
中的string-array
填充此strings.xml
。
strings.xml
中的数组如下所示:
<string-array name="currency_symbols">
<item>$ - Dollar</item>
<item>€ - Euro</item>
<item>£ - Pound</item>
<item>¥ - Yen</item>
<item># - Other</item>
</string-array>
然后我尝试创建一个RadioButton
并将其添加到RagioGroup,其中包括以下内容:
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);
}
添加了currencySettingRadioGroup.removeAllViews();
,因为我收到了以下错误,但没有区别:
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
显然导致问题的一行是currencySettingRadioGroup.addView(rb);
行...
我该如何正确地做到这一点?
(我看过Create RadioButton Dynamically with String Array和引用的http://android.okhelp.cz/create-radiobutton-radiogroup-dynamically-android-sample/,但似乎无法正常工作)
答案 0 :(得分:0)
根据Barns52的评论,每次在RadioButton
- 循环周围创建一个新的for
(而不是在for
- 循环开始之前只创建一次)解决了这个问题。
工作代码如下:
RadioGroup currencySettingRadioGroup = (RadioGroup) settings_dialog.findViewById(R.id.rg_currency_symbol);
String[] currency_symbols_options_array = getResources().getStringArray(R.array.currency_symbols);
for ( String this_currency_option: currency_symbols_options_array ) {
RadioButton rb = new RadioButton(this);
rb.setText(this_currency_option);
currencySettingRadioGroup.addView(rb);
}