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

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

概述我在使用Integer数据类型实现双向绑定时遇到了一些问题.publicclassUser{privateStringfirstName;privateStringlastName;privateintage;publicUser(){}publicvoidsetFirstName(StringfirstName){this.firstName=firstName

我在使用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 >        <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

总结

以上是内存溢出为你收集整理的使用Integer类型的Android双向绑定导致数据绑定不存在全部内容,希望文章能够帮你解决使用Integer类型的Android双向绑定导致数据绑定不存在所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1102152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存