假设我的activity_home_1
有两种布局 activity_home_2
和 HomeActivity
。
我希望能够像以前使用Java一样在它们之间切换:
int layout = getResources().getIdentifier("activity_home_" + getHomeScreenNumber(),"layout",getPackageName());
setContentView(layout);
以及以后使用findViewById();
当然,这两种布局中的所有元素都被命名为相同的元素,只是外观不同,因此在Java中完美地工作。
在Kotlin的另一面,我避免使用findViewById()
,而是使用 Kotlin Android扩展,并且在包含这样的布局时效果很好:
import kotlinx.android.synthetic.main.activity_home_1.*
麻烦是当我想在它们之间切换时。只是简单地为其他布局添加另一个导入,这会导致错误,因为它不知道要查看哪个布局(因为它们都具有相同的字段)。
使用 Kotlin Android扩展时如何在两种布局之间切换?
答案 0 :(得分:1)
答案很简单,我没有给予足够的重视。 它将包含所需的布局:
setContentView(..)
例如,如果您包含
import kotlinx.android.synthetic.main.activity_home_1.*
,然后在您的OnCreate()
中设置
setContentView(R.layout.activity_home_3)
现在,将显示您的 activity_home_3 布局,并将引用其元素!
无需findViewById()