Получить массив строк в строку

1

У меня есть набор строк, которые я изначально использовал с ArrayAdapter для заполнения Spinner. Вместо Spinner, я хочу использовать BaseExpandableListAdapter. Есть ли способ получить набор значений строкового массива в объект String?

Вот мой строковый массив

<string-array name="component2_color">
    <item>Blueberry</item>
    <item>Chocolate</item>
    <item>Dark Chocolate</item>
    <item>Lemon</item>
    <item>Lime</item>
    <item>Orange</item>
    <item>Strawberry</item>
    <item>Raspberry</item>
    <item>Grape</item>
    <item>Vanilla</item>
    <item>Butterscotch</item>
</string-array>

И вот фрагмент кода, который я взял из ApiDemos, который показывает, как заполнить группу и дочерние элементы расширяемого списка.

public class MyExpandableListAdapter extends BaseExpandableListAdapter {
    // Sample data set.  children[i] contains the children (String[]) for groups[i].
    private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" };
    private String[][] children = {
            { "Arnold", "Barry", "Chuck", "David" },
            { "Ace", "Bandit", "Cha-Cha", "Deuce" },
            { "Fluffy", "Snuggles" },
            { "Goldy", "Bubbles" }
    };

Я хочу, чтобы дети String использовали четыре разных строковых массива. Могу ли я это сделать? Я не уверен, как начать.

Изменить: я пробовал это, но я получаю исключение ресурсов, которое не найдено.

    private String[] groups = {UserMessage.this.getString(R.array.message_groups)};
    private String[][] children = {{UserMessage.this.getString(R.array.message_group_1)},
            {UserMessage.this.getString(R.array.message_group_2)},
            {UserMessage.this.getString(R.array.message_group_3)},
            {UserMessage.this.getString(R.array.message_group_4)}
    };
  • 2
    getString () не будет работать, потому что ресурс - это строковый массив, а не строка. Попробуйте getStringArray () - который вернет строковый массив - затем соберите необходимую строку из строкового массива.
  • 0
    круто, это сработало! +1 спасибо
Теги:
string
expandablelistview
arrays
expandablelistadapter

1 ответ

2
Лучший ответ

Изменено на:

    private String[] groups = getResources().getStringArray(R.array.message_groups);
    private String[][] children = {getResources().getStringArray(R.array.message_group_1),
            getResources().getStringArray(R.array.message_group_2),
            getResources().getStringArray(R.array.message_group_3),
            getResources().getStringArray(R.array.message_group_4)
    };

Спасибо Карлу за ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню