gpt4 book ai didi

java - 使用字符串数组中的 RadioButtons 填充 RadioGroup

转载 作者:行者123 更新时间:2023-12-02 12:02:58 26 4
gpt4 key购买 nike

我的布局包含一个空的 RadioGroup。 (我认为这是这个问题和其他问题之间的区别 - 我已经在布局中的正确位置放置了空的 RadioGroup)

我想用我在 strings 中定义的 string-array 中的 item 填充此 RadioGroup .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/ 但似乎没有任何作用)

最佳答案

根据 Barns52 的评论,每次在 for 循环周围创建一个新的 RadioButton (而不是在 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);
}

关于java - 使用字符串数组中的 RadioButtons 填充 RadioGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47114867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com