Loading [MathJax]/jax/input/TeX/config.js
社区首页 >问答首页 >Android懒惰数据绑定可能吗?

Android懒惰数据绑定可能吗?
EN

Stack Overflow用户
提问于 2016-03-05 03:48:13
回答 2查看 1.8K关注 0票数 7

Android数据绑定支持最酷的特性之一是,它还为设置了it的View生成字段。这会整理代码库,因为不需要字段或findViewById()调用。

但问题是,绑定实例只能通过倾向于调度绑定的bind()调用来检索。当异步接收数据时,这是不好的,通常会抛出NullPointerException

是否可以在没有实际数据绑定过程的情况下检索具有View字段的绑定实例?

堆栈跟踪:

代码语言:javascript
代码运行次数:0
复制
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
         at com.app.android.databinding.ActivityRestaurantDetailsBinding.executeBindings(ActivityRestaurantDetailsBinding.java:381)
         at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:350)
         at android.databinding.ViewDataBinding$6.run(ViewDataBinding.java:167)
         at android.databinding.ViewDataBinding$5.onViewAttachedToWindow(ViewDataBinding.java:137)
         at android.view.View.dispatchAttachedToWindow(View.java:14525)
EN

回答 2

Stack Overflow用户

发布于 2016-03-05 03:58:06

这似乎没有意义,数据绑定将忽略null变量,因此不应该抛出null指针,我相信这是它最重要的特性之一。如果你需要在异步调用之后修改变量,你可以直接使用dataBinding.executePendingBindings()

来自the docs

生成的绑定类将为每个描述的变量提供一个setter和getter。在调用setter之前,变量将采用默认的Java值--引用类型为null,int为0,boolean为false,依此类推。

生成的数据绑定代码自动检查null并避免null指针异常。例如,在表达式@{ user.name }中,如果user为null,则将为user.name分配其默认值(null)。如果您引用的是user.age,其中age是一个整数,那么它将缺省为0。

票数 3
EN

Stack Overflow用户

发布于 2019-01-23 11:20:23

java.lang.Boolean也遇到了同样的问题。通过使用原语boolean类型解决。

代码语言:javascript
代码运行次数:0
复制
<variable
    name="var"
    type="boolean" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35809743

复制
相关文章
Android DataBinding 数据绑定
引子 几年前,数据绑定在便已在前端界风生水起,Angular.js、React.js、vue.js等热门前端框架都具备这种能力。 数据绑定简单来说,就是通过某种机制,把代码中的数据和xml(UI)绑定起来,双方都能对数据进行操作,并且在数据发生变化的时候,自动刷新数据。 数据绑定分单向绑定和双向绑定两种。 单向绑定上,数据的流向是单方面的,只能从代码流向UI;双向绑定的数据流向是双向的,当业务代码中的数据改变时,UI上的数据能够得到刷新;当用户通过UI交互编辑了数据时,数据的变化也能自动的更新到业务代码中的
QQ音乐技术团队
2018/01/31
2.7K0
Android DataBinding 数据绑定
Android Data Binding(数据绑定)用户指南
1)介绍 这篇文章介绍了如何使用Data Binding库来写声明的layouts文件,并且用最少的代码来绑定你的app逻辑和layouts文件。 Data Binding库不仅灵活而且广泛兼容- 它是一个support库,因此你可以在所有的Android平台最低能到Android 2.1(API等级7+)上使用它。 需求:Android Plugin for Gradle 1.5.0-alpha1 或 更高版本。 2)构建环境 要开始使用Data Binding,首先需要在Android SDK Mana
庞小明
2018/03/07
2.1K0
dropdownlist控件绑定数据库_凡科可以绑定数据库吗
DropDownList1.DataSource=myReader;//myReader为ExecuteReader()的结果集 DropDownList1.DataTextField(DataValueField) = “填充在myReader中的数据集,用哪个列填充就写哪个列名就ok 了”; DropDownList1.DataBind();
全栈程序员站长
2022/11/10
9810
懒惰的力量
(今天我在旧金山参加了Erlang factory 2015大会,增长了很多见识。参会的总结我过两天再写,很多思想需要时间沉淀。) 前段时间写了篇「永恒不变的魅力」,介绍了immutability,很多读者表示喜欢这样的文章。这篇文章继续走标题党路线,给大家奉上的不是鸡汤,而是正儿八经的技术文章,讲的是Lazy evaluation。 在大家熟悉的编程语言中,调用一个函数,系统会老老实实返回调用的结果。这非常正常且直观 —— 计算机不就该这么运作么?如果你恰巧是个c语言开发者,objdump一下生成的目标文
tyrchen
2018/03/28
7980
【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 )
数据绑定 是 通用的编程技术 , 主要作用是 关联 应用的 UI 界面 与 数据模型 ,
韩曙亮
2023/03/26
1.6K0
【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 )
android查看绑定源码
  当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都是已经写好的方法和控件,可是我们只是在搬来使用,不知道它的原理,它是如何被实现的。android系统是开源的,所以谷歌
xiangzhihong
2018/01/29
1.5K0
android查看绑定源码
Android 视图绑定 ViewBinding
我们以前获取xml中的View,通常通过findViewById但是样板代码太多,而且容易引用错误发生崩溃。
zinyan.com
2022/12/07
1.5K0
Android 绑定服务 bindService[通俗易懂]
绑定服务是客户端–服务器接口中的服务器。组件(如activity)和服务进行绑定后,可以发送请求、接收响应、执行进程间通信(IPC)。不会无限期在后台运行。
全栈程序员站长
2022/06/28
3.9K0
Android数据绑定技术二,企业级开发
PS:上一篇文章写了Databinding的简单使用,写了一个绑定textview的示例,和绑定的一些用法,估计有的人会说,之前的写的好好的,为什么要数据绑定这样的写法呢,没办法,社会在进步,当然是怎么好怎么做了。这篇主要是内容是 数据绑定加载网络图片 数据绑定ListView   自定义适配器(数据绑定通用适配器) item中某一个控件点击事件并刷新定位 先说一下数据绑定加载网络图片和本地图片,图片的载体我们都知道用ImageView,但是如果直接把图片通过set的形式传给xml文件的话,数据绑定是无法
cMusketeer
2018/03/28
7830
Android数据绑定技术二,企业级开发
Android数据绑定技术一,企业级开发
PS:数据绑定,顾名思义是数据与一些控件或者用户账号等绑定,这样用的好处是便于管理。代码清晰,量少。 首先要了解什么是数据绑定? 为什么要用数据绑定? 怎么用数据绑定?   语法的使用 简单例子,数据绑定textview控件,一般情况下我们都是些一个布局文件,然后布局文件里放一些textview,然后通过Activity来findviewbyid来获取id,然后对象.setText("")。现在我们学了数据绑定,就可以不用之前的方法了。 把库加载进来:因为这个东西是网上的东西需要我们下载。 dataBi
cMusketeer
2018/03/28
8050
Android数据绑定技术一,企业级开发
Android JetPack~ DataBinding(数据绑定)(一) 集成与使用
DataBinding(数据绑定)发布于2015年的Google I/O大会,旨在减少Android开发中的大量模板代码,增加代码及逻辑清晰度,提高开发效率和维护效率。
cMusketeer
2023/02/16
6960
Android JetPack~ DataBinding(数据绑定)(一) 集成与使用
最懒惰的算法—KNN
总第77篇 本篇介绍机器学习众多算法里面最基础也是最“懒惰”的算法——KNN(k-nearest neighbor)。你知道为什么是最懒的吗? 01|算法简介: KNN是英文k-nearest neighbor的缩写,表示K个最接近的点。该算法常用来解决分类问题,具体的算法原理就是先找到与待分类值A距离最近的K个值,然后判断这K个值中大部分都属于哪一类,那么待分类值A就属于哪一类。 这其实和我们生活中对人的评价方式一致,你想知道一个人是什么样的人,你只需要找到跟他关系最近(好)的K个人,然后看这K个人都
张俊红
2018/04/11
1.9K0
最懒惰的算法—KNN
数据绑定
什么是数据绑定呢? 把WXML 中的⼀些动态数据分离出来 放到对应的js⽂件的 Page 的 data⾥
达达前端
2019/08/23
1.7K0
数据绑定
Angular有四种数据绑定形式: <div> <div>{{hero.name}}</div> //第一种 <hero-detail [hero]="selectedHero"></hero-detail> //第二种 <input type="text" [(ngModel)]="username" /> //第三种 <in
用户1437675
2018/08/20
1.8K0
WPF 笔刷绑定不上可能的原因
在 WPF 中如背景色等都是使用笔刷,在使用绑定的时候可能绑定不上,本文告诉大家绑定不上可能的原因和调试方法
林德熙
2019/09/19
9860
WPF 笔刷绑定不上可能的原因
虚拟主机怎么绑定域名?绑定失败可以正常使用吗?
众所周知,只拥有一个普通的域名,是不能够正常运营网站的,人们还需要将域名绑定在主机上,这时候许多人使用的都是虚拟主机,它可以方便人们进行操作,不过还是应当提前搞清楚虚拟主机怎么绑定域名这个问题。
用户8739990
2021/08/06
8.5K0
虚拟主机怎么绑定域名?绑定失败可以正常使用吗?
WPF 笔刷绑定不上可能的原因
在 WPF 中如背景色等都是使用笔刷,在使用绑定的时候可能绑定不上,本文告诉大家绑定不上可能的原因和调试方法
林德熙
2022/08/04
6140
Python 有可能删除 GIL 吗?
我们知道,在 CPython 中,有一个全局解释器锁,英文叫 global interpreter lock,简称 GIL,是一个互斥锁,用来保护 Python 世界里的对象,防止同一时刻多个线程执行 Python 的字节码,从而确保线程安全,这导致了 Python 的线程无法利用多核 CPU 的优势,因此有人说 Python 的多线程是伪多线程,性能不高,那么 Python 将来有可能去除 GIL 吗?
somenzz
2021/03/10
2.8K0
点击加载更多

相似问题

不要缓存“懒惰值”。有可能吗?

35

沙发数据库+邮袋数据库懒惰加载列表项可能吗?

11

Android Studio可能出现数据绑定错误

110

csv数据可以变得懒惰吗?

43

Android活动/视图可见性绑定--这可能吗?

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档