动态访问Kotlin中的视图属性

时间:2019-07-07 12:49:19

标签: android kotlin stack-overflow dry kotlin-android-extensions

我需要在我的Android应用程序中,以避免每次出现新情况时都必须重复一行,我想在forEach循环中调用此行。

我处在片段中,所以我的view指向当前视图,在该视图中我无法动态访问属性。

这是我所做的:

val product = arguments!!.getParcelable<Product>(ARG_PRODUCT)!!
listOf("fat", "fat_acids", "salt", "sugar").forEach {
    view.get<TextView>(it).text = view.context.getString(
        resources.getIdentifier("of_${it}", "string", view.context.packageName),
        product.nutriFacts[it].quantityFor100,
        product.nutriFacts[it].unit
    )
}

然后,Android Studio告诉我,我必须创建一个新的属性访问器,在这种情况下,该操作员是操作员:

private operator fun <T> View.get(property: String): T {
    return this[property]
}

但是现在错误是在此精确行上的StackOverflow错误(不是讽刺的):

return this[property]

我该如何实现?

0 个答案:

没有答案