我在DataBindingUtil.setContentView()
中遇到了问题。显示以下错误。
[Type推理失败:没有足够的信息来推断fun setContentView(p0:活性,p1:Int):T!请明确指定。
- 我的代码:**
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// setContentView(R.layout.activity_home) var binding =
DataBindingUtil.setContentView(this, R.layout.activity_home)
}
谁能帮我解决这个错误。我已经做了清洁和Rebuild(Invalidate and Restart)
也。
请让我知道任何其他的建议。
8条答案
按热度按时间nwo49xxi1#
用途:
DataBindingUtil.setContentView
返回作为参数传入的特定布局文件的绑定。i86rm4rw2#
创建一个像这样的绑定对象。
必须提到Activity Binding类型。我有Main Activity,所以绑定类型是
ActivityMainBinding
。这就是你所错过的。应该是这样的:
flseospp3#
顺便说一下,清理构建,无效和重新启动并不是Android Studio中的唯一解决方案#JustKidding:)
关于你面临的错误,你实际上需要指定视图:
val listViewEmployees = findViewById(R.id.listViewEmployees)
作为ListView到
val listViewEmployees = findViewById<ListView>(R.id.listViewEmployees)
vsaztqbk4#
将代码修改为:
然后执行“文件->无效缓存/重新启动”
kiz8lqtg5#
您还必须在视图的XML文件中启用绑定,只需将所有ui Package 在layout标记中即可。
只要转到文件:
R.layout.activity_home
它看起来应该像下面的代码-
dphi5xsq6#
在项目的布局文件中,即
ativity_home.xml
确保你已经封闭了你的布局,它可能是一个约束,线性,相对的,等等。在<layout>
标签中。另外,将所有命名空间添加到布局标签。比如,改变
到
guykilcj7#
试试这个
zzzyeukh8#
在Kotlin中,最初一切看起来都很奇怪。参考上面的代码来解决问题,即使错误没有解决,也可以 checkout 下面的类型转换。
仅供参考:ActivityMainBinding的名称来自布局xml的名称。如果它被命名为“activity_main”,它将是“ActivityMainBinding”