通过数组而不是xml布局中的单独字符串,在Radio Group中设置Radio Buttons的文本

时间:2014-05-02 10:59:29

标签: android arrays radio-group

我想使用数组而不是单独的字符串来表示无线电组的单选按钮成员。

这必然来自我后来需要的逻辑。但是我找不到在预定义布局中执行此操作的方法,并且在编程方面执行它似乎在逻辑和效率方面都是不必要的开销:

我必须获取String [],将其转换为数组,然后遍历无线电组(每次都创建一个对象):

    RadioGroup rg = (RadioGroup) frg_view.findViewById(R.id.rg1);
    ArrayList<String> arrayText = new ArrayList<>();
    String[] text = getResources().getStringArray(R.array.arr1);
    Collections.addAll(arrayText, text);


    for (int i = 0; i < rg.getChildCount(); i++) {
        RadioButton rb = (RadioButton) rb.getChildAt(i);
        rb.setText(arrayText.get(i));

    }

有没有办法在布局文件中更直接地做到这一点?否则,我提出的另一个选择就是两次定义这些无线电组的字符串 - 一次作为布局文件的单独ID,第二次作为程序逻辑的数组

1 个答案:

答案 0 :(得分:3)

我认为您可以单独定义字符串,然后在res/values/arrays.xml

中执行此操作
<resources>
    <string-array>
        <item>@string/radio_button1</item>
        <item>@string/radio_button2</item>
        <!-- etc -->
    </string-array>
</resources>

这不是很好,但至少你没有两次定义字符串。