ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用Integer类型的Android双向绑定导致数据绑定不存在

2019-09-26 23:25:43  阅读:95  来源: 互联网

标签:android android-databinding


我在使用Integer数据类型实现双向绑定时遇到了一些问题.

public class User {

    private String firstName;
    private String lastName;
    private int age;

    public User() {}

    public void setFirstName(String firstName) {
       this.firstName = firstName;
    }

    public String getFirstName() {
       return this.firstName;
    }

    public void setLastName(String lastName) {
       this.lastName = lastName;
    }

    public String getLastName() {
       return this.lastName;
    }

    public void setAge(int age) {
       this.age = age;
    }

    public int getAge() {
       return this.age;
    }

}

XML:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data class="UserDataBinding">
        <variable
            name="user"
            type="com.databinding.model.User" />
    </data>

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="@dimen/activity_horizontal_margin">

       <EditText android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@={user.firstName}" />

       <EditText android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@={user.lastName}" />

       <EditText android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@={user.age}" />

    </LinearLayout>
</layout>

不幸的是,它给了我错误

“Error:(52, 17) Cannot find the getter for attribute ‘android:text’
with value type java.lang.Integer on
android.support.design.widget.TextInputEditText. “

如果我将属性文本更改为

       <EditText android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@={Integer.toString(user.age)}" />

然后我得到了错误

“Error:cannot generate view binders java.lang.NullPointerException”

感谢任何帮助.

更新:似乎在上面提到的错误之后发生了另一个错误.

cannot generate view binders java.lang.NullPointerException

不知道为什么它给我NPE即使应用还没有开始.

解决方法:

好吧,六个月后,但也许我可以帮助别人.

你可以做这个简单的伎俩:

android:text="@={`` + mObject.someNumber}"

OBS:您至少需要Android Studio 2.3

标签:android,android-databinding
来源: https://codeday.me/bug/20190926/1822005.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有