sow*_*mia 66 data-binding android
By default, a Binding class will be generated based on the name of the layout
file, converting it to Pascal case and suffixing “Binding” to it.
The above layout file was activity_main.xml so the generate class was ActivityMainBinding.
Run Code Online (Sandbox Code Playgroud)
什么时候会生成Binding类,比如说ActivityMainBinding.我有编译时错误."无法解析ActivityMainBinding".
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.谢谢
小智 88
你的布局名称是什么?
上面的布局文件是activity_main.xml,因此生成类是ActivityMainBinding.
这意味着生成的类名将取决于您的布局名称
activity_main.xml - > ActivityMainBinding.java
我认为你的活动名称是"main_activity",所以生成的绑定类名应该是MainActivityBinding而不是ActivityMainBinding
Fra*_*eng 35
当它没有生成绑定类时,我重新启动Android studio.然后将生成绑定类.是不是由android studio的缓存引起的?
顺便说一句,如果您正在使用android-apt,请检查它.因为它会导致绑定类不被生成.
yig*_*git 29
您是否更新了数据绑定的布局文件?它们仅针对具有数据绑定的布局生成.
它必须以带有layout2个子标签(数据和根视图)的标签开头.
像这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<LinearLayout ...
</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
当您的布局具有此表单时,AndroidStudio应自动完成该类.此外,默认情况下,它是在<your.app.package>.databinding包中生成的.
sur*_*lac 14
尝试将布局重命名为main_activity.xml.
就我而言,它不能为"activity_main.xml"生成绑定类.
但重命名布局文件以正常main_activity.xml工作.
Khe*_*raj 11
布局名称在snake_case,并生成绑定类名称PascalCase.
如果你的布局名称是
activity_home.xml绑定类名将ActivityHomeBinding.class.
当你没有得到导入建议.像这样手动导入绑定类.(IDE通常不显示绑定类的建议)
import <yourpackage>databinding.ActivityMainBinding;
Run Code Online (Sandbox Code Playgroud)请注意,我建议从最近关闭并打开,因为它比重建/重新启动IDE花费的时间更少.
如果你还有问题.请在评论中告诉我,或者查看此答案以便更好地理解.
| 归档时间: |
|
| 查看次数: |
50832 次 |
| 最近记录: |