pRa*_*NaY 44 data-binding android android-databinding
使用数据绑定时,我无法MainActivityBinding 按照数据绑定指南获取类
我的布局名称是activity_main.xml.我也看到了Android - DataBinding - 如何以及何时生成Binding类?但它无法帮助我.
Roc*_*cky 79
将根据您的xml文件名生成DataBinding类.您正在关注的文档中明确提到它.
默认情况下,绑定类将基于布局文件的名字中产生,将其转换为帕斯卡情况和后面添加"绑定"来了.上面的布局文件是main_activity.xml,因此generate类是MainActivityBinding
如果您的xml名称activity_main.xml比DataBinding类名称要多ActivityMainBinding.
如果您的xml名称main_activity.xml比DataBinding类名称要多MainActivityBinding.
别忘了清理和构建项目一次
您可以按照本教程了解有关DataBinding的更多信息
Ism*_*bal 21
TRY将xml文件重命名为另一个名称,并检查绑定是否有效,将其重命名为已使用的绑定.
这有助于Android Studio 3.1
pRa*_*NaY 18
感谢您的回答.我找到了带有ContentMainBinding类名称的数据绑定解决方案.让我解释一下.
注意:虽然使用<include ...此处的布局<include layout="@layout/content_main"具有数据绑定功能,但与包含布局名称相关的类名称.这里是ContentMainBinding
我的布局文件如下:
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.databindingdemo.app.MainActivity">
...
<include layout="@layout/content_main" />
...
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
而content_main.xml是我添加数据绑定布局代码的布局.
因此,而不是使用 MainActivityBinding它可以解决ContentMainBinding
对我有用的代码如下:
//Code for data binding
ContentMainBinding contentMainBinding = DataBindingUtil.setContentView(this, R.layout.content_main);
user = new User("Pranay", "Patel", "demoemail@gmail.com", "9999999999");
contentMainBinding.setUser(user);
Run Code Online (Sandbox Code Playgroud)
DONE.
And*_*Lee 12
确保您的 activity_main.xml 文件包含如下布局标签:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.constraint.ConstraintLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
小智 8
我已经清理了项目,Rebuild已经完成......但没有用.然后无效的缓存并重新启动项目,这也没有帮助我.
然后我改变了我的xml文件名 - 这非常好用.
所以,我想与您分享一件事,请更改您的xml文件名.
例如:如果您的xml文件是:activity_main.xml,并且您无法在其Java类中获取ActivityMainBinding ..........然后将xml名称更改为main_activity.xml,然后在其java类中使用MainActivityBinding作为'私人MainActivityBinding绑定;'
这很可能会做.
小智 6
在我的情况下,删除应用程序构建文件夹然后重建项目解决了我的问题。
即使以下步骤也不起作用。
1) Rebuild the project after adding the dataBinding in gradle.
2) Rebuild after adding layout tag in xml.
3) cleaning the project
4) rebuilding the project
5) Restarted the Android Studio
Run Code Online (Sandbox Code Playgroud)
在应用程序 gradle 文件中启用数据绑定后,请重建。然后我们可以找到生成的 Binding 类。
If the layout name is fragment_home, The Binding class name will be FragmentHomeBinding.
Run Code Online (Sandbox Code Playgroud)
我在更改我的源的包名后遇到了同样的问题,在我尝试了很多事情之后(包括这里提到的),我通过手动导入数据绑定类解决了问题:
import com.domain.my.databinding.MyActivityBinding;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54656 次 |
| 最近记录: |