是否可以通过 Kotlin Android 扩展以编程方式包含特定布局?

Is it possible to programmatically include specific layout with Kotlin Android Extension?

假设我的 HomeActivity 有两个布局 activity_home_1activity_home_2。 我希望能够像以前在 Java:

中那样在它们之间切换
int layout = getResources().getIdentifier("activity_home_" + getHomeScreenNumber(),"layout",getPackageName());
setContentView(layout);

然后使用 findViewById();

引用我布局的元素

当然,这两个布局中的所有元素都被命名为相同的,它们只是外观不同,所以这在 Java.

中工作得很好

在 Kotlin 的另一边,我正在避免 findViewById() 而我正在使用 Kotlin Android Extensions,它与包括像这样的一种布局:

import kotlinx.android.synthetic.main.activity_home_1.*

问题是我想在它们之间切换。只是简单地为另一个布局添加另一个导入会导致错误,因为它不知道要查看哪个布局(因为它们都有相同的字段)。

如何在使用 Kotlin Android Extensions 时在两种布局之间切换?

答案很简单,我没有给予足够的重视。 它包括所需的布局:

setContentView(..)

例如,如果您包含

  • import kotlinx.android.synthetic.main.activity_home_1.*

并在您的 OnCreate() 中设置

  • setContentView(R.layout.activity_home_3)

现在,您的 activity_home_3 布局将被显示,并且它们的元素将被引用!

不需要findViewById()