【问题标题】:Kotlin meta programming with variables带有变量的 Kotlin 元编程
【发布时间】:2018-11-09 19:25:54
【问题描述】:

我正在创建一个带有动态底部导航菜单的应用。每个菜单项的titleicon_name 来自API 调用。

我已设法将 JSON 读入名为 AppNavigation 的模型数组中,现在我想自定义底部导航图标和标题。

对于标题来说,这样做很简单

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

但事实证明,图标要困难得多。我的图标名称看起来像 fa_homefa_users。我需要获取这个字符串值并使用它从所有 FontAwesome 图标的大枚举中获取图标。

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

在 Ruby on Rails 中,我会使用 FontAwesomeIcons.send('fa_home'),但我不知道在 Kotlin 中如何实现相同的功能(或者是否甚至可以使用编译语言)。

【问题讨论】:

    标签: java android kotlin metaprogramming font-awesome


    【解决方案1】:

    每个 Enum 都有几个隐式方法,我相信您正在寻找其中一个方法:EnumClass#valueOf(String)

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

    Working with Enum Constants

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2017-10-18
      • 1970-01-01
      • 2019-11-28
      • 2018-03-22
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      相关资源
      最近更新 更多