У меня есть набор строк, которые я изначально использовал с 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)}
};
Изменено на:
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)
};
Спасибо Карлу за ответ.