Как эффективно получить короткий массив из ресурсов на Android?

У меня есть XML-файл, хранящий массив шортов в моих ресурсах. Мне нужно назначить этот массив, но Android API предоставляет только способ получить массив целых (getResources.getIntArray()). В итоге я получил массив целых и преобразовал его в массив шорт, но это вряд ли идеально.

Есть ли способ получить массив шорт из ресурсов Android? Если нет, есть ли более эффективный / более чистый способ преобразования массива int в короткий массив? Мой код в настоящее время выглядит так:

int indicesInt[] = context.getResources().getIntArray(R.array.indices);
short indices[] = new short[indicesInt.length];
for (int i = 0; i < indicesInt.length; i++) {
    indices[i] = (short)indicesInt[i];
}

1 ответ

Решение

Нет способа напрямую получить массив шорт AFAIK. Стоит посмотреть, сможете ли вы просто использовать int[] вместо вашего short[], Если вы используете библиотеку или что-то еще и не можете изменить требования, ваш пример - лучший способ сделать это. Остерегайтесь возможного переполнения.

Другие вопросы по тегам