CN107066564A - 一种基于安卓列表的数据处理方法及装置 - Google Patents
一种基于安卓列表的数据处理方法及装置 Download PDFInfo
- Publication number
- CN107066564A CN107066564A CN201710210556.7A CN201710210556A CN107066564A CN 107066564 A CN107066564 A CN 107066564A CN 201710210556 A CN201710210556 A CN 201710210556A CN 107066564 A CN107066564 A CN 107066564A
- Authority
- CN
- China
- Prior art keywords
- data
- vernier
- list
- object listing
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
Abstract
本发明提供一种基于安卓列表的数据处理方法,包括:接收列表数据插入请求;设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历;根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置。其中,所述列表数据插入请求包括:目标列表、第二数据的类型和所述第一数据与所述第二数据的相对位置信息。本方法通过利用自动算法去解决多类型关联问题,避免了因为列表中数据类型过多导致应用逻辑过于复杂的问题,降低了开发难度,计算过程简单,具有可扩展性。
Description
技术领域
本发明涉及安卓开发领域,更具体地,涉及一种基于安卓列表的数据处理方法及装置。
背景技术
目前,安卓的应用软件开发中,一般都会使用各种列表控件进行列表的构建,而最常用的列表控件为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层。
通过此装置,可以提升安卓列表中数据插入的灵活性,更容易定义数据的插入位置。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于安卓列表的数据处理方法,其特征在于,包括:
接收列表数据插入请求;
设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历;
根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置;
其中,所述列表数据插入请求包括:目标列表、第二数据的类型和所述第一数据与所述第二数据的相对位置信息。
2.根据权利要求1所述的方法,其特征在于,所述列表数据包含第一参数和第二参数,其中,第一参数用于表征列表数据的数据类型,第二参数为当前数据的数据内容。
3.根据权利要求1所述的方法,其特征在于,所述第一数据与所述第二数据的相对位置信息是指:
以第二数据在目标列表中处于与其相同数据类型数据的顺序值为临时起始值,所述第一数据插入在所述临时起始值前或后第N个位置的信息。
4.根据权利要求3所述的方法,其特征在于,所述设置一个游标,通过所述游标根据所述列表数据插入请求对列表进行遍历具体包括,当在遍历中读取到对象数据的类型与所述第二数据的数据类型相同时,游标值加1,直至游标得值与所述第二数据在目标列表中处于与其相同数据类型数据的顺序值相同时,停止遍历。
5.根据权利要求4所述的方法,其特征在于,所述根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置具体为:
使用根据游标值和游标在所述目标列表中的位置信息计算出所述第二数据在列表中的位置以及根据所述第一数据与所述第二数据的相对位置信息,计算出所述第一数据插入在目标列表中的位置。
6.根据权利要求5所述的方法,其特征在于,还包括数据插入步骤:通过从数据库中提取所述第一数据,插入在所述第一数据插入所述目标列表中的位置。
7.根据权利要求1所述的方法,其特征在于,所述游标值为第二数据的数据类型在游标当前位置的数据偏移值。
8.一种基于安卓列表的数据处理装置,其特征在于,包括:
信息接收模块,用于接收列表数据插入请求;
列表遍历模块,用于通过设置的游标根据所述列表数据插入请求对列表进行遍历;
计算模块,用于根据游标值和游标在所述目标列表中的位置信息,计算第一数据插入所述目标列表中的位置;
其中,所述列表数据插入请求包括:目标列表、第二数据类型和所述第一数据与所述第二数据的相对位置信息。
9.根据权利要求8所述的装置,其特征在于,所述列表遍历模块具体用于:当在遍历中读取到对象数据的类型与所述第二数据的类型相同时,游标的值自身加1,直至游标得值与所述第二数据在目标列表中处于与其相同数据类型数据的顺序值相同时,停止遍历。
10.根据权利要求8所述的装置,其特征在于,所述计算模块具体用于:使用遍历结果计算出所述第二数据在列表中的位置以及根据所述第一数据与所述第二数据的相对位置信息,计算出所述第一数据插入在目标列表中的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710210556.7A CN107066564B (zh) | 2017-03-31 | 2017-03-31 | 一种基于安卓列表的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710210556.7A CN107066564B (zh) | 2017-03-31 | 2017-03-31 | 一种基于安卓列表的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107066564A true CN107066564A (zh) | 2017-08-18 |
CN107066564B CN107066564B (zh) | 2020-10-16 |
Family
ID=59602802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710210556.7A Active CN107066564B (zh) | 2017-03-31 | 2017-03-31 | 一种基于安卓列表的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066564B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033197A (zh) * | 2018-06-28 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种信息显示方法、装置、存储介质及终端 |
CN111050194A (zh) * | 2019-12-02 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 视频序列处理方法、视频序列处理装置、电子设备及计算机可读存储介质 |
CN115645905A (zh) * | 2022-10-21 | 2023-01-31 | 圣名科技(广州)有限责任公司 | 游标显示的方法和装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1317117A (zh) * | 1998-08-11 | 2001-10-10 | 古庄晋二 | 对表格式数据进行查找、列表及分类的方法、及记录了查找、列表或分类程序的记录介质 |
CN1332416A (zh) * | 2000-06-15 | 2002-01-23 | 国际商业机器公司 | 用于维护链接表的方法和装置 |
CN105677879A (zh) * | 2016-01-12 | 2016-06-15 | 诸葛晴凤 | 内存关系数据库的数据组织及访问方法 |
CN106406899A (zh) * | 2016-09-28 | 2017-02-15 | 北京金山安全软件有限公司 | 一种基于安卓系统的分区域显示方法、装置及电子设备 |
-
2017
- 2017-03-31 CN CN201710210556.7A patent/CN107066564B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1317117A (zh) * | 1998-08-11 | 2001-10-10 | 古庄晋二 | 对表格式数据进行查找、列表及分类的方法、及记录了查找、列表或分类程序的记录介质 |
CN1332416A (zh) * | 2000-06-15 | 2002-01-23 | 国际商业机器公司 | 用于维护链接表的方法和装置 |
CN105677879A (zh) * | 2016-01-12 | 2016-06-15 | 诸葛晴凤 | 内存关系数据库的数据组织及访问方法 |
CN106406899A (zh) * | 2016-09-28 | 2017-02-15 | 北京金山安全软件有限公司 | 一种基于安卓系统的分区域显示方法、装置及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033197A (zh) * | 2018-06-28 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种信息显示方法、装置、存储介质及终端 |
CN111050194A (zh) * | 2019-12-02 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 视频序列处理方法、视频序列处理装置、电子设备及计算机可读存储介质 |
CN115645905A (zh) * | 2022-10-21 | 2023-01-31 | 圣名科技(广州)有限责任公司 | 游标显示的方法和装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107066564B (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109858019B (zh) | 对话状态跟踪方法及装置、存储介质及语义识别系统 | |
CN107729383A (zh) | 一种索引库生成方法、数据验证方法、装置及平台 | |
CN107688999A (zh) | 一种基于区块链的并行交易执行方法 | |
CN109474578A (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN107066564A (zh) | 一种基于安卓列表的数据处理方法及装置 | |
CN108388598A (zh) | 电子装置、数据存储方法及存储介质 | |
CN107783886A (zh) | 一种获取运行帧率的方法及终端 | |
US8769244B2 (en) | SIMD parallel computer system, SIMD parallel computing method, and control program | |
CN109934712A (zh) | 应用于分布式系统的对账方法、对账装置和电子设备 | |
CN105278966B (zh) | 基于失效模式分析的卫星星载制导与导航软件的设计与测试方法 | |
CN108008936A (zh) | 一种数据处理方法、装置及电子设备 | |
CN106802785A (zh) | 一种栈解析方法和装置 | |
CN105138329B (zh) | 一种修改在轨任务的方法 | |
CN106649210A (zh) | 一种数据转换方法及装置 | |
CN109284173A (zh) | 一种用于虚拟机业务迁移的智能管理设备 | |
CN113535258A (zh) | 一种Pattern文件加载方法及系统 | |
CN110706108B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN105988920B (zh) | 一种基于数据集的测试案例生成方法及其装置 | |
CN106855821A (zh) | 一种分布式事务处理方法及装置 | |
CN107392745B (zh) | 一种对帐数据碎片化处理方法 | |
CN107169604A (zh) | 物流配送方法和装置 | |
CN107256252A (zh) | 一种第三方多维数据迁移方法及装置 | |
CN114564336A (zh) | 数据一致性校验方法、装置、设备以及存储介质 | |
CN103544317B (zh) | 维度表数据的处理方法和装置 | |
CN103729844B (zh) | 一种静止检测方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230523 Address after: Room 501, 5th Floor, Building 1, No. 13 Tianyou 3rd Road, Guicheng Street, Nanhai District, Foshan City, Guangdong Province, 528253, China Patentee after: Foshan Fashion City Network Technology Co.,Ltd. Address before: 430000 Wuhan Donghu Development Zone, Wuhan, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |