System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种APP-UI绑定数据改变时自动更新的方法技术_技高网

一种APP-UI绑定数据改变时自动更新的方法技术

技术编号:44542755 阅读:0 留言:0更新日期:2025-03-11 14:09
本发明专利技术提供一种APP‑UI绑定数据改变时自动更新的方法,所述方法采用泛型编程的方式,封装一套模板接口,包括:S1,创建全局观察者处理对象;S2,创建数据观察者集合;S3,将用户产生的数据封装成数据类型,所有只用该数据类型的组件都注册到监听集合中,当数据发生改变时,依据数据类型就能够匹配到所有依赖的组件并进行自动通知更新:一个数据类型的顺序关系:S3.1,观察者监听Map集合;S3.2,添加一个观察者到观察者集合;S3.3,当数据发生包括增加、删除、更新的变更,根据Key获取观察者集合;S3.4,观察者:变更通知,观察者根据自身特性,执行相应的动作;S3.5,不需要某个观察者时,从监听集合中移除一个监听。

【技术实现步骤摘要】

本专利技术属于android开发,特别涉及一种app-ui绑定数据改变时自动更新的方法。


技术介绍

1、手机app上好看的界面设计和友好的交互方式都需要android开发平台提供的绘制组件来实现,每个组件只能完成单一的功能,比如:按钮只能接受用户点击事件,android开发就是将组件组合起来接收或展示用户产生的数据,比如:通信录联系人信息列表的展示和滑动。但通常用户产生的数据可能多个不同界面的组件所使用,当数据发生改变时开发者需要考虑此时需要更新哪些界面的组件。

2、android平台的组件只能被动绘制传给它的数据,当数据发生改变时组件并不会自动根据最新数据更新组件状态,而是需要重新传递最新数据并通知组件绘制才能更新组件状态,体验app交互的友好性。

3、然而,通常用户产生的数据被多个不同界面的组件所使用,当一些数据发生变化时开发者需要思考哪些界面的组件使用到了该数据并逐个通知对应的组件更新数据,而一个app的组件是很多的,使得组件和数据匹配的管理很繁琐且难以维护。

4、此外,现有技术中的常用术语包括:

5、app:手机上安装的软件,比如:微信。

6、app-ui:软件里的界面设计,一个界面由若干功能组件组成,比如:微信头像就是由android提供用于展示图片的组件绘制出来的,而微信头像的样式是由提供给绘制组件的数据决定的。


技术实现思路

1、为了解决上述问题,本申请的目的在于:设计一种app-ui绑定数据改变时自动更新方法,能够让android平台的组件和需要绘制的数据产生绑定关系,从而当数据发生改变时,自动查找到使用该数据的所有组件并通知更新。

2、具体地,本专利技术提供一种app-ui绑定数据改变时自动更新的方法,所述方法采用泛型编程的方式,封装一套模板接口,包括以下步骤:

3、s1,创建全局观察者处理对象,创建一个全局单例对象,在整个项目中都可通过这个单例对象操作触发数据变更的相关动作,表示为:

4、

5、s2,创建数据观察者集合,

6、观察者能力定义:

7、观察对象,表示为:@param<data>

8、public interface idatachangelistener<data extends basedata>{

9、string getobservername();

10、该函数可获取数据观察者的名字;

11、s3,将用户产生的数据封装成数据类型,所有只用该数据类型的组件都注册到监听集合中,当数据发生改变时,依据数据类型就能够匹配到所有依赖的组件并进行自动通知更新:一个数据类型的顺序关系如下:

12、s3.1,创建观察者监听map集合;

13、s3.2,添加一个观察者到观察者集合;

14、s3.3,当数据发生包括增加、删除、更新的变更,根据key获取观察者集合;

15、s3.4,观察者:变更通知,观察者根据自身特性,执行相应的动作;

16、s3.5,不需要某个观察者时,从监听集合中移除一个监听。

17、所述步骤s3中进一步包括,

18、s3.1,创建观察者监听map集合,表示为:

19、private final map<class<?>,copyonwritearrayset<idatachangelistener>>

20、changelisteners=new hashmap<>();

21、其中,class<?>代表监听的是数据库中的表;set<datachangelistener>代表监听这个表中的每一个监听器的集合;

22、s3.2,添加一个观察者到观察者集合,表示为:

23、

24、

25、s3.3,当数据发生包括增加、删除、更新的变更,根据key获取观察者集合,表示为:

26、@param tclass观察对象类别;

27、@param<model>继承的父类为basedata;

28、@return返回观察者集合,支持多线程并发读写,但是不支持多线程同时写,表示为

29、

30、s3.4,通知观察者数据发生了变更:

31、观察者:删除通知,表示为:

32、

33、

34、观察者:变更通知,表示为:

35、

36、s3.5,从监听集合中移除一个监听,表示为:

37、

38、所述步骤s3.3中所述根据key获取观察者集合,即通过索引可找到对应的值,这里的key代表的是数据类型,通过数据类型可找到其对应的所有观察者。

39、所述方法中,当发生以下情况触发通知:

40、a,数据实体发生:增、改行为时触发观察者通知;

41、观察者所观察的数据实体,表示为:@param datas,

42、对于数据其实并没有太多标识的行为,就是更新数据属性和数据实体被删除这两种;

43、观察者的具体行为标识,表示为:@param action,

44、有两种行为:添加设备和删除设备,执行不同的行为之后,处理的结果也会不同,这里用tag来标识引发观察者通知这个行为的行为;

45、但是一个行为所引发的另一个行为会是多样的,所以要通过行为标识来区分对待,表示为:

46、void ondatasave(object action,data...datas);

47、数据增加或更新行为的统一触发函数,并通过action标识告知观察者,是什么动作引发了数据的变化,观察者以此来做出自己的动作;b,数据实体发生:删除行为时触发观察者通知。

48、所述数据的增加、删除、更新后触发的动作,需要依据观察者即业务功能模块而定,类似新闻广播,即通知有变化发生,同时也传达的发生了哪些变化;

49、所述tag的作用是告知众多数据观察者,当接收到数据已经发生改变后,如何做出相应的动作应对。

50、所述tag根据业务功能自定义,可表示为:

51、设备添加成功通知:string tag_dev_add="dev_add";

52、设备列表删除设备通知回调:string tag_dev_list_del="dev_list_del";

53、设备列表刷新操作:string tag_dev_refresh_list="dev_refresh_list"。

54、一个app可有很多数据类型,每个数据类型都可重复步骤s3.1-s3.5的动作。

55本文档来自技高网...

【技术保护点】

1.一种APP-UI绑定数据改变时自动更新的方法,其特征在于,所述方法采用泛型编程的方式,封装一套模板接口,包括以下步骤:

2.根据权利要求1所述的一种APP-UI绑定数据改变时自动更新的方法,其特征在于,所述步骤S3中进一步包括,

3.根据权利要求2所述的一种APP-UI绑定数据改变时自动更新的方法,其特征在于,所述步骤S3.3中所述根据Key获取观察者集合,即通过索引可找到对应的值,这里的Key代表的是数据类型,通过数据类型可找到其对应的所有观察者。

4.根据权利要求2所述的一种APP-UI绑定数据改变时自动更新的方法,其特征在于,所述方法中,当发生以下情况触发通知:

5.根据权利要求4所述的一种APP-UI绑定数据改变时自动更新的方法,其特征在于,所述数据的增加、删除、更新后触发的动作,需要依据观察者即业务功能模块而定,即通知有变化发生,同时也传达的发生了哪些变化;所述tag的作用是告知众多数据观察者,当接收到数据已经发生改变后,如何做出相应的动作应对。

6.根据权利要求5所述的一种APP-UI绑定数据改变时自动更新的方法,其特征在于,所述tag根据业务功能自定义,可表示为:

7.根据权利要求1所述的一种APP-UI绑定数据改变时自动更新的方法,其特征在于,一个APP可有很多数据类型,每个数据类型都可重复步骤S3.1-S3.5的动作。

8.根据权利要求1所述的一种APP-UI绑定数据改变时自动更新的方法,其特征在于,所述观察者包括设备列表观察者。

...

【技术特征摘要】

1.一种app-ui绑定数据改变时自动更新的方法,其特征在于,所述方法采用泛型编程的方式,封装一套模板接口,包括以下步骤:

2.根据权利要求1所述的一种app-ui绑定数据改变时自动更新的方法,其特征在于,所述步骤s3中进一步包括,

3.根据权利要求2所述的一种app-ui绑定数据改变时自动更新的方法,其特征在于,所述步骤s3.3中所述根据key获取观察者集合,即通过索引可找到对应的值,这里的key代表的是数据类型,通过数据类型可找到其对应的所有观察者。

4.根据权利要求2所述的一种app-ui绑定数据改变时自动更新的方法,其特征在于,所述方法中,当发生以下情况触发通知:

5.根据权利要求4所述的一种app-ui绑定数据改...

【专利技术属性】
技术研发人员:马良
申请(专利权)人:合肥君正科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1