Котлинское метапрограммирование с переменными - PullRequest
0 голосов
/ 30 мая 2018

Я создаю приложение с динамическим нижним меню навигации.title и icon_name каждого пункта меню происходят из вызова API.

Мне удалось прочитать JSON в массив моделей с именем AppNavigation, и теперь я хочу настроить нижнюю навигациюзначки и заголовки.

Для заголовков это было просто сделать

menu.findItem(R.id.action_one).title = sqlAppNavigations[0].name

Но значки оказываются гораздо сложнее.У меня есть имя значка, которое выглядит как fa_home или fa_users.Мне нужно взять это строковое значение и использовать его, чтобы получить значок из большого списка всех значков FontAwesome.

menu.findItem(R.id.action_one).icon = FontAwesomeIcons.fa_home)

В Ruby on Rails я бы использовал FontAwesomeIcons.send('fa_home'), но я не знаюкак то же самое достигается в Kotlin (или, если возможно, с помощью скомпилированного языка).

1 Ответ

0 голосов
/ 31 мая 2018

Каждый Enum имеет несколько неявных методов, один из которых, я полагаю, вы ищете: EnumClass#valueOf(String)

menu.findItem(R.id.action_one).icon = FontAwesomeIcons.valueOf(sqlAppNavigations[0].icon)

Работа с константами Enum

...