一种基于安卓列表的数据处理方法及装置与流程

文档序号:11519798阅读:218来源:国知局
一种基于安卓列表的数据处理方法及装置与流程

本发明涉及安卓开发领域,更具体地,涉及一种基于安卓列表的数据处理方法及装置。



背景技术:

目前,安卓的应用软件开发中,一般都会使用各种列表控件进行列表的构建,而最常用的列表控件为recyclerview控件。通过使用recyclerview控件,可以在安卓开发中构建风格各异的列表,并在有限的空间内展示大量的数据。

在现阶段的安卓开发过程中,当使用recyclerview控件建立了一个表格后,表格内可能存在各种类型的数据,例如广告数据、导航链接、房间数据和视频数据等,通常在开发中,每种数据都会有单独的数据库,通过从数据库中调入数据进入列表中。然而,当一个列表中数据类型过多的时候,每次要在列表中插入一个新数据的时候,都要重新计算这个数据在列表中的位置;另一方面,一般在应用开发中,对列表都会使用滑到底部后加载后续内容的功能,然而当列表中数据类型过多以后,每次加载新的数据都要对相应类型的数据计算其类型的数据在列表中的偏移值,然后再向数据库中请求对应顺序的数据加载进列表中。

现有的安卓开发过程中,针对列表数据插入都需要计算出展示位置的偏移量,处理的结构和后续代码都很复杂,而且没有扩展的可能性,严重影响了后续的开发周期,增加了开发的复杂程度。



技术实现要素:

为克服现有的安卓开发过程中,针对列表数据插入需要计算出展示位置的偏移量,在多类型数据列表中容易造成处理的结构和后续的代码都很复杂的问题,提出一种安卓列表处理方法及装置。

根据本发明的一个方面,提供一种基于安卓列表的数据处理方法,其特征在于,包括:

接收列表数据插入请求;

设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历;

根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置;

其中,所述列表数据插入请求包括:目标列表、第二数据的类型和所述第一数据与所述第二数据的相对位置信息。

其中,所述列表数据包含第一参数和第二参数,其中,第一参数用于表征列表数据的数据类型,第二参数为当前数据的数据内容。

其中,所述第一数据与所述第二数据的相对位置信息是指:

以第二数据在目标列表中处于与其相同数据类型数据的顺序值为临时起始值,所述第一数据插入在所述临时起始值前或后第n个位置的信息。

其中,所述设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历具体为,当在遍历中读取到对象数据的类型与所述第二数据的类型相同时,游标的值自身加1,直至游标得值与所述第二数据在目标列表中处于与其相同数据类型数据的顺序值相同时,停止遍历。

其中,所述根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置具体为:

使用根据游标值和游标在所述目标列表中的位置信息计算出所述第二数据在列表中的位置以及根据所述第一数据与所述第二数据的相对位置信息,计算出所述第一数据插入在目标列表中的位置。

其中,还包括数据插入步骤,通过从数据库中提取所述第一数据,插入在所述第一数据插入所述目标列表中的位置。

其中,所述游标值为第二数据的数据类型在游标当前位置的数据偏移值。

根据本发明另一方面,提供一种基于安卓列表的数据处理装置,包括:

信息接收模块,用于接收列表数据插入请求;

列表遍历模块,用于设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历;

计算模块,用于根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置;

其中,所述列表数据插入请求包括:目标列表、第二数据类型和所述第一数据与所述第二数据的相对位置信息。

其中,所述列表遍历模块具体用于,当在遍历中读取到对象数据的类型与所述第二数据的类型相同时,游标的值自身加1,直至游标得值与所述第二数据在目标列表中处于与其相同数据类型数据的顺序值相同时,停止遍历。

其中,所述计算模块具体用于,使用遍历结果计算出所述第二数据在列表中的位置以及根据所述第一数据需要插入在所述第二数据前或后第n个位置,计算出所述第一数据插入在目标列表中的位置。

本申请提出一种基于安卓列表的数据处理方法及装置,通过设置游标对列表进行遍历,快速查询出列表数据的偏移和数据在列表中展示位置的偏移值,具有更好的解耦和效果,避免了因为数据类型过多导致代码逻辑过于复杂的问题。

附图说明

图1为本发明一实施例提供的一种基于安卓列表的数据处理方法的流程图;

图2为本发明又一实施例提供的一种基于安卓列表的数据处理方法的流程图;

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所述,图1为本发明一实施例提供的一种安卓列表处理方法的流程图,所述方法包括:

s1,接收列表数据插入请求;

s2,设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历;

s3,根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置。

其中,所述列表数据插入请求包括:目标列表、第二数据的类型和所述第一数据与所述第二数据的相对位置信息。

其中,所述设置一个游标,对列表进行遍历具体为,当在遍历中读取到对象数据的类型与所述第二数据的类型相同时,游标的值自身加1,直至游标得值与所述第二数据在目标列表中处于与其相同数据类型数据的顺序值相同时,停止遍历。

在具体实施中,在安卓开发的过程中,当需要往列表1中插入一条广告数据的时候,则会计算这条广告数据要插入在列表中的正确位置,此时会发出一条数据插入请求,请求中包含三个参数,第一个参数为这条广告需要插入的列表list,第二个参数为第二数据的数据类型信息,第三个参数为这条广告需要插入的位置与第二数据在表中的相对位置信息。

在此处,第二数据为一个参照数据,为列表中的某一数据,因此,当前接收到的数据插入请求为需要将广告数据插入到列表1中第x条视频数据的下方的第一个位置。此时,表1中第x条视频数据即为所述第二数据。

当接到此请求以后,在列表1中设置一个游标p,p的初始值为0,然后对列表1进行遍历,每次游标读取到表内数据类型为视频的时候,p的值加1,当p的值等于x的时,即当p=x的时候,停止遍历。

读取此时游标p在列表中的层数i,则广告数据的插入在列表1中的位置为第i+1层。

通过此方法,能够精确计算出数据需要插入在列表中的真实位置,避免了现有方法中每次插入数据都要进行位置计算,计算内容呈指数级增长的问题,计算过程简单,具有可扩展性。

在上述实施例的基础上,所述列表数据包含第一参数和第二参数,其中,第一参数用于表征列表数据的数据类型,第二参数为当前数据的数据内容。

在具体实施中,通过定义一个封装结构,命名为typemodel,其中有两个参数,其中一个参数为type,用于指明当前数据的类型,比如房间数据的数据类型为1,广告数据的数据类型为2,视频数据的数据类型为3。另一个参数为object,为当前数据的数据内容。由此,每一个列表的数据都包含至少2个参数,其一为用于表征列表数据的数据类型,第二个为列表数据的原数据内容。

通过此方法,使得数据结构统一,增强了数据的一致性,后续增加新的类型无需改动代码,具有很好的扩展性。

在上述实施例的基础上,所述第一数据与所述第二数据的相对位置信息是指:

以第二数据在目标列表中处于与其相同数据类型数据的顺序值为临时起始值,所述第一数据插入在所述临时起始值前或后第n个位置的信息。

所述根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置具体为:

使用遍历结果计算出所述第二数据在列表中的位置以及根据所述第一数据与所述第二数据的相对位置信息,计算出所述第一数据插入在目标列表中的位置。

在具体实施中,广告数据可以选择插入在第x条视频数据的上方或者下方第n层,相应的,计算步骤为根据第x条视频数据的具体层数i±n,得出第一数据在列表中的插入层数。

通过此方法,可以提升安卓列表中数据插入的灵活性,更容易定义数据的插入位置。

在上述实施例的基础上,还包括数据插入步骤,通过从数据库中提取所述第一数据,插入在所述第一数据插入所述目标列表中的位置。

具体的,当计算出数据插入在表中的层数以后,会将需要插入列表的广告数据从相应的广告数据库中提取出来,并将该广告数据插入到列表中的第i±n层。

本方法通过利用自动算法去解决多类型关联问题,避免了因为列表中数据类型过多导致应用逻辑过于复杂的问题,降低了开发难度,计算过程简单,具有可扩展性。

在上述实施例中,所述游标值为第二数据的数据类型在游标当前位置的数据偏移值。

在具体实施中,通过游标对列表list进行遍历,可以计算出目标数据的数据类型在列表list中的偏移值。

比如这里要查询列表1中房间数据的偏移,则定义一个游标p,p的初始值为0,然后对列表1进行遍历,由于数据都进行过封装处理,所以房间的type字段为1,每当遍历到列表中数据类型type的字段为1的时候,游标p的自身值加1,当遍历完成以后,游标的值n即为房间数据在当前游标停留位置的偏移值。

当继续加载新的房间数据进入游标下方的时候,房间数据将从数据库中第n+1条进行加载。

通过此方法,可以快速计算出每种类型的数据在列表中的偏移值,当需要加载更多数据的时候,可以根据偏移值快速定位需要加载的数据顺序位置,处理结构简单,后续扩展更容易。

如图2所示,图2为本发明一实施例提供的一种安卓列表处理装置的结构图,包括:信息接收模块1、列表遍历模块2和计算模块3.

其中,信息接收模块1用于接收列表数据插入请求。

其中,列表遍历模块2用于设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历。

其中,计算模块3用于根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置。

其中,所述列表数据插入请求包括:目标列表、第二数据类型和所述第一数据与所述第二数据的相对位置信息。

其中,所述列表遍历模块具体用于,当在遍历中读取到对象数据的类型与所述第二数据的类型相同时,游标的值自身加1,直至游标得值与所述第二数据在目标列表中处于与其相同数据类型数据的顺序值相同时,停止遍历。

在具体实施中,当需要往列表3中插入一条视频数据的时候,则会计算这条视频数据要插入在列表中的正确位置,信息接收模块2会收到一条数据插入请求,请求中包含三个参数,第一个参数为这条视频需要插入的列表list,第二个参数为第二数据的数据类型信息type,第三个参数为这条视频需要插入的位置与第二数据在表中的相对位置信息。

在此处,第二数据为一个参照数据,为列表中的某一数据,因此,当前接收到的数据插入请求为需要将视频数据插入到列表3中第5条视频数据的下方的第一个位置。此时,表3中第5条视频数据即为所述第二数据。

当接到此请求以后,列表遍历模块2会在在列表3中设置一个游标p,p的初始值为0,然后对列表3进行遍历,每次游标读取到表内数据类型为视频的时候,p的值加1,当p的值等于5的时,即当p=5的时候,停止遍历。

计算模块3此时会读取此时游标p在列表中的层数10,则视频数据的插入在列表3中的位置为第11层。

通过此装置,能够精确计算出数据需要插入在列表中的真实位置,避免了现有方法中每次插入数据都要进行位置计算,计算内容呈指数级增长的问题,计算过程简单,具有可扩展性。

在上述实施例基础上,所述计算模块具体用于,使用遍历结果计算出所述第二数据在列表中的位置以及根据所述第一数据需要插入在所述第二数据前或后第n个位置,计算出所述第一数据插入在目标列表中的位置。

在具体实施中,需要插入的视频数据的插入位置可以是,表3中第5条视频数据的后面第3个位置,当接到此请求以后,列表遍历模块2会在在列表3中设置一个游标p,p的初始值为0,然后对列表3进行遍历,每次游标读取到表内数据类型为视频的时候,p的值加1,当p的值等于5的时,即当p=5的时候,停止遍历。

计算模块3此时会读取当前游标在列表中的层数10,则需要插入的视频数据插入在列表3中的位置为第13层。

通过此装置,可以提升安卓列表中数据插入的灵活性,更容易定义数据的插入位置。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1