com.***.databinding不存在

本文详细解析DataBinding中常见的三个问题:android:text属性中避免使用中文,整个TextView内不可包含中文,变量名避免使用下划线。并提供了解决方案,如通过string.xml资源文件进行字符串拼接,实体类内部处理,以及正确的变量命名规范。

DataBinding的恶心bug

  • 程序包不存在 一般都是xml文件出错

DataBinding的布局文件中不允许使用中文

 

1、android:text 不允许出现中文 或中文 字符

android:text='@{String.valueOf("姓名:"+user.name)}' 

把需要拼接的定义到string.xml了 


<string name="label_rmb">¥</string> 

 

然后调用时就像这样

android:text="@{@string/label_rmb+user.name}" 

//或者 


android:text="@{String.format(@string/label_rmb_2,user.name)}" 


另外还有一种方式,那就是在实体类里面处理
 

public class User { 
    public String name; 
    public String des; 
    public String getNameStr() { 
        return "姓名:" + name; 
    } 
} 


然后调用时就像这样

android:text="@{user.nameStr}" 

2、整个TextView里面也不许有中文

 

<TextView
    android:tag="@string/SBXH"
    android:onClick="@{click.onClick}"
    android:text="@{table.SBXH}"
    android:id="@+id/tv_SBXH"

    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@drawable/table_tv_click"
    android:gravity="center"
    android:padding="8dp"
    android:textSize="20sp" />

 

3、name取名 不要存在 _

 

<variable name="table" type="Table_1"/> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值