android - 如何在 Kotlin 中通过名称动态调用类
问题描述
假设我有一个名为“LoginFragment”的片段。我想在下面的添加事务中使用这个片段:
fTransaction.add(R.id.login_fragment, LoginFragment())
但我需要像这样动态地调用它:
val name = "LoginFragment"
fTransaction.add(R.id.login_fragment, name())
我该怎么做?谢谢
解决方案
如果你想Fragment
通过它的名字来实例化 a ,你可以使用它FragmentFactory
来实例化Fragment
:
try {
val fragmentName = "LoginFragment"
val fragmentFullName = "your.package.name.$fragmentName"
val fragment = supportFragmentManager.fragmentFactory.instantiate(classLoader, fragmentFullName)
supportFragmentManager
.beginTransaction()
.add(R.id.login_fragment, fragment)
.commitNow()
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
推荐阅读
- python - JSONResponse 中未解决的参考“内容”
- visual-studio-code - 通过 VS Code launch.json 使用 Node js Mocha 运行单个测试文件
- wordpress - Woocommerce - 特定产品为物理商店送货地址添加免费送货
- apache - 本地 HTTP 请求检查器
- sql - 案例陈述中的 SQL 案例陈述
- google-cloud-platform - 聚合重复字段:BigQuery
- r - 我应该如何修复我的 ggplot boxplot 代码以获得所需的外观?
- apache-kafka - 具有自定义消费者组名称的 Kafka Sink 连接器
- swift - 试图让 GameKit matchMaking 工作
- android - HTML字体大小在android上的浏览器中不起作用