Фон: Для моего приложения Android я использую ListView, а элементы списка запускают звуки, которые хранятся в виде .ogg-файлов в каталоге/res/raw /. Я смог автоматически установить текстовые метки и длину списка с помощью строковых массивов, хранящихся в файле strings.xml, теперь мне нужен дополнительный массив идентификаторов, которые я хотел бы хранить там, а также для удобного расширения списка в будущем ,Как преобразовать этот массив java в xml?
Рабочий код: Для строковых массивов, я использую этот код: Java Фрагмент:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
...
titles = getResources().getStringArray(R.array.listoftitles);
XML (strings.xml):
<string-array name="listoftitles">
<item>Title1</item>
<item>Title2</item>
</string-array>
Проблемный код: Java Фрагмент:
filenames = new int[]{R.raw.both1, R.raw.both2, R.raw.both3, R.raw.both4, R.raw.both5
, R.raw.both6, R.raw.both7, R.raw.both8, R.raw.both9, R.raw.both10, R.raw.both11
, R.raw.both12, R.raw.both13, R.raw.both14, R.raw.both15, R.raw.both16, R.raw.both17
, R.raw.both18, R.raw.both19};
Цель:
private void populatemylist() {
for (int i = 0; i < titles.length; i++) {
itemsdb.add(new Item(titles[i], descriptions[i], filenames[i]));
}
}
Удобство метода populatemylist() имеет решающее значение, и в то время как названия [] и описание [] легко извлекаются из XML-массивов, это не работает для имен файлов, которые мне нужны как RESID/междунар стоимость. Я попытался использовать целочисленный массив, а также общий массив с бэкэндом TypedArray Java, но это, похоже, нацелено на чертежи, и я просто не могу заставить его извлечь что-либо из папки/res/raw /. Я хотел бы иметь простое решение массива, который идет в strings.xml в моде
<item>R.raw.both1</item>
и простой Java бэкэнде, который получает мне целочисленный массив из этих файлов.
Спасибо так много! Это именно то, что мне нужно. Все остальные вопросы и руководства по стекированию всегда использовали локальный int [] в Fragment и пытались передать весь массив. Это отлично работает, поскольку он получает только важную текущую ценность с помощью метода, а именно то, что отсутствовало во всех других нерабочих решениях. –