Как сделать переменную из массива - PullRequest
0 голосов
/ 19 сентября 2019

Я использую массив, как показано ниже, и я использую переменную "category" после этого без проблем.

var category = resources.getStringArray(R.array.**main_menu**)

Мой вопрос: как я могу создать переменную "main_menu"?Существуют и другие массивы, и я хочу отправить их имена как переменные в этой строке?

Я попробовал приведенный ниже код, но, конечно, он не работает, потому что это текст, а "getStringArray" ожидает Int.

var **text** = R.array.main_menu
var mainCategory = resources.getStringArray(**text**)

1 Ответ

2 голосов
/ 19 сентября 2019

Используя метод getIdentifier () , вы можете получить целочисленный идентификатор вашего ресурса.Этот метод принимает три параметра:

  • Имя ресурса в виде строки

  • Тип ресурса, который в вашем случае "array"

  • Имя пакета

Используя идентификатор ресурса, полученный из resources.getIdentifier(arrayName, "array", getPackageName()), вы можете получить массив.

Вот полный код:

var arrayName = "main_menu"
val resId = resources.getIdentifier(arrayName, "array", context.packageName)
var mainCategory = resources.getStringArray(resId)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...