位置: 编程技术 - 正文

高级控件AdapterView(二):通过Observer实现数据、视图同步刷新(高级控件动态数据加载过程有哪些)

编辑:rootadmin
多条目控件AdapterView是仿MVC设计模式进行设计的,即AdapterView与数据是分离的,AdapterView并不直接操作数据,而是利用中间件适配器Adapter,实际上,完整的AdapterView显示是三个逻辑部分:AdapterView&#;Adapter&#;Data,Adapter相当于MVC中的控制器C,AdapterView相当于MVC中的视图V,顺便说一句,Android程序设计,也是利用MVC控制模式。既然视图与数据是分离的,那么当数据有更新时,视图显然无法自动更新,Adapter必须实时监控数据变化并刷新视图,这里用到的是Observer(观察者模式)。一、DataSetObserver类DataSetObserver类的API这样描述:DataSetObserver(观察者)通常设置给Cursor或Adapter,如果数据发生变化则回调该类方法。DataSetObserver类无法单独调用,必须配合DataSetObservable类使用。该类的实例即是Observer,观察者的刷新视图行为是由onChanged以及onInvalidated方法决定的,通常在AdapterView控件,如ListView中继承该类,并通过重写这两个方法,实现针对性的视图刷新。

推荐整理分享高级控件AdapterView(二):通过Observer实现数据、视图同步刷新(高级控件动态数据加载过程有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android高级控件实验报告,高级控件 PPT,高级控件动态数据加载过程有哪些,高级控件动态数据加载过程有哪些,高级控件代码,高级控件代码,高级控件代码,高级控件 PPT 课程思政,内容如对您有帮助,希望把文章链接给更多的朋友!

二、Observable类继承体系

2.1、Observable基类

这是一个抽象基类,该类主要提供对Observer进行注册或解除注册到ArrayList数据集(Observer必须绑定到某个数据集才能监测)。 源码如下:

2.2、DataSetObservable类

这是一个可实例化类,通常在对ArrayList数据进行更新后,主动调用notifyChanged()函数,若ArrayList数据失效,比如给视图绑定新的数据源等等,调用notifyInvalidated,源码如下:

高级控件AdapterView(二):通过Observer实现数据、视图同步刷新(高级控件动态数据加载过程有哪些)

三、适配器Adapter中与DataSetObserver有关的方法

3.1、adapter中相关源码3.2、BaseAdapter中相关源码

3.3、小结

Adapter主要是注册一个Observer,然后在数据有变化时,主动调用notifyDataSetChanged()或notifyInvalidated(),而决定数据在出现变化后的行为(主要是onchanged()方法决定),一般需要在AdapterView中进行个性定制。

四、AdapterView中与DataSetObserver有关的方法

4.1、AdapterViewAdapterView中写了一个继承DataSetObserver的内部类AdapterDataSetObserver,主要是重新onChanged(),onInvalidated()方法,以执行AdapterView的刷新视图操作4.2、ListViewListView中,主要是setAdapter()方法将适配器Adapter绑定到ListView,并设置Adapter的观察者为AdapterDataSetObserver。4.3、小结AdapterView控件主要定义Observer行为,即Onchanged()和onInvalidated()方法,然后通过Adapter的注册方法registerDataSetObserver()对定制的mDataSetObserver注册。

五、简单Demo

实现长按长按ListView并删除所在项,主要代码如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 触摸事件传递机制 android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法:1)publicbooleandispatchTouchEvent(MotionEventev)这个方法用来分发TouchEvent2)publicbool

RSA加密解密及数字签名Java实现 RSA加密解密及数字签名Java实现RSA公钥加密算法是年由罗纳德·李维斯特(RonRivest)、阿迪·萨莫尔(AdiShamir)和伦纳德·阿德曼(LeonardAdleman)一起提

定制Android ListView 快速滚动的滚动条-fast scroll bar thumb 1.方法一:privatevoidinitScrollBar(){try{Fieldf=AbsListView.class.getDeclaredField(mFastScroller);f.setAccessible(true);Objecto=f.get(mListView);f=f.getType().getDeclaredField(mThumbDrawable);f.se

标签: 高级控件动态数据加载过程有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/370981.html 转载请保留说明!

上一篇:如何解决Android SDK中离线文档打开慢的问题(如何解决android代码红线)

下一篇:Android 触摸事件传递机制(Android触摸事件回调方法)

  • 分公司上交总公司营业款如何记账
  • 厂房租赁税点
  • 个税计算方法和规定
  • 企业自产的产品转为自用
  • 本月无销售额,但是有进项,需要认证吗
  • 银行收取的账户管理费是什么费用
  • 购房发票是不是增值税
  • 交通运输行业属于什么性质
  • 企业所得税季报和年报的区别
  • 模具费进研发费用还是成本
  • 固定资产特性
  • 购入原材料退货的记账凭证怎么写
  • 材料收到发票未到怎么记账
  • 营改增后企业要交哪些税
  • 法律关系的内容是指
  • 个人机械租赁费税率
  • 金融机构计提减值准备
  • 购进农产品怎么做账
  • 企业所得税年报过了申报期还能修改吗
  • 小微企业工会
  • 个体户酒店服务业个税税率
  • 小规模纳税人出售使用过固定资产
  • 合同增值税如何申报
  • 其他应付款冲回计入哪个科目
  • 测速网在线测速
  • linux c gui
  • php调用mysql索引查询
  • mac 10.11系统
  • php面向对象优点,缺点
  • 应收票据与应付票据的使用与哪种银行结算方式有关
  • 在资本相对充足的情况下,为什么还要进一步引进外资
  • 会计计量属性的是
  • 怎样把有余额的钱转出来
  • 企业迁址如何办理手续
  • 来料加工业务的会计处理
  • redis如何实现分布式事务
  • 小规模城建税减半征收2021新政策
  • 物流公司交保险是骗局吗
  • 一般纳税人公司出售旧车怎么开票
  • echarts在地图上标记图标
  • sync命令是什么意思
  • 所得税的季末从哪里算
  • react避免子组件更新
  • 外籍专家劳务费
  • 分公司二季度安全生产分析会内容
  • 税务法是否允许私人经营
  • mongodb使用案例
  • 其他应付款贷方正数表示什么意思
  • 怎样根据税负率计算税额
  • 税法增值税的不同
  • 企业会计准则在建工程转固定资产
  • 个人所得税的征收模式为()A
  • 企业赠送个人房产 所得税
  • 分配股利有几种形式
  • 存货报废如何做账
  • 企业未按照规定报送年度报告怎么办
  • 费用分摊怎么开口说好
  • 原始凭证和记账凭证的填制
  • win10 性能选项
  • win8如何卸载360安全卫士?
  • windowxp系统升级
  • centos7.5设置静态ip
  • windows7开始菜单不见了
  • kwconfig.exe
  • 一篇非常好的作文
  • win7注册表修改锁屏时间
  • win10老是自动重启是什么原因
  • WIN10怎么卸载更新
  • jquery插件使用教程
  • pycharm远程调试linux
  • unity怎么用
  • 简述javascript的作用
  • python爬虫快速入门
  • 网上交购置税怎么拿完税证明
  • 如何做好税收工作推动税收事业创新发展
  • 国家税务网上办税平台
  • 购电脑折旧的会计分录
  • 从量定额资源税口诀
  • 食品烟酒消费包括哪些
  • 优化营商环境关于人才工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设