CN106406899A - 一种基于安卓系统的分区域显示方法、装置及电子设备 - Google Patents
一种基于安卓系统的分区域显示方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106406899A CN106406899A CN201610862585.7A CN201610862585A CN106406899A CN 106406899 A CN106406899 A CN 106406899A CN 201610862585 A CN201610862585 A CN 201610862585A CN 106406899 A CN106406899 A CN 106406899A
- Authority
- CN
- China
- Prior art keywords
- data
- source
- displayed
- android system
- displayed source
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Abstract
本发明的实施例提供一种基于安卓系统的分区域显示方法、装置及电子设备。涉及安卓系统数据整合技术。通过构造第一对象,获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中,构造第二对象,获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中,对所述第一待显示数据源和所述第二待显示数据源进行垂直合并,对所述垂直合并后得到的结果进行显示,能够方便、快速地实现不同数据源的分区域显示。
Description
技术领域
本发明涉及安卓(Android)系统数据整合技术,尤其涉及一种基于安卓系统的分区域显示方法、装置及电子设备。
背景技术
随着移动设备的不断普及,安卓系统应用几乎无处不在,已涉及到各个领域。对于用户来说,除了看重移动设备的功能外,其屏幕的图形界面也是最关注的对象。没有提供友好的图形界面的移动设备,将很难吸引最终的用户;相反,拥有一个友好的图形界面,用户可以轻松地通过手指去点击各种事件来操作相应的应用程序。就像windows系统一样,最初能很快吸引大量用户,就是因为它有丰富的图形界面,最终几乎独占整个市场。可想而知,友好的图形界面是多么的重要。安卓系统的图形界面主要由表示各种事件或应用程序的视图组成。ListView是安卓系统中使用非常广泛的一种视图组件,它以垂直列表的形式显示所有列表项,比如,在显示联系人名单、系统设置项等。人们为了更方便地使用视图列表,经常需要分组显示列表项中的视图,将不同的数据项显示在不同的区域。视图分组显示不但要在布局上考虑多个条目的设计,还要在代码实现上整合数据结构进行拼凑封装,以达到分区域不同数据显示的目的。
由上述可见,现有的视图分组显示方法存在的问题是:分区域显示不同数据的方法需要考虑的因素较多,实现起来比较麻烦。
发明内容
有鉴于此,本发明实施例提供一种基于安卓系统的分区域显示方法、装置及电子设备,能够方便、快速地实现不同数据源的分区域显示。
第一方面,本发明实施例提供一种基于安卓系统的分区域显示方法,包括:
构造第一对象;
获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;
构造第二对象;
获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;
对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;
对所述垂直合并后得到的结果进行显示。
结合第一方面,在第一方面的第一种实施方式中,所述构造第一对象包括:通过安卓系统提供的MatrixCursor构造第一对象;所述构造第二对象包括:通过安卓系统提供的MatrixCursor构造第二对象。
结合第一方面,在第一方面的第二种实施方式中,
所述获取在第一区域显示的第一待显示数据源,包括:通过安卓系统提供的游标接口获取在第一区域显示的第一待显示数据源;
所述获取在第二区域显示的第二待显示数据源,包括:通过安卓系统提供的游标接口获取在第二区域显示的第二待显示数据源。
结合第一方面,在第一方面的第三种实施方式中,所述对所述第一待显示数据源和所述第二待显示数据源进行垂直合并,包括:
构造包括所述第一待显示数据源和所述第二待显示数据源的游标数组;
通过安卓系统提供的MergeCursor对所述游标数组中的第一待显示数据源和第二待显示数据源进行垂直合并。
结合第一方面及第一方面的第一种~第三种实施方式中的任意一种实施方式,在第一方面的第四种实施方式中,在所述获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中之后,在所述对所述第一待显示数据源和所述第二待显示数据源进行垂直合并之前,所述方法还包括:向待显示数据源的头部插入新数据源。
结合第一方面,在第一方面的第五种实施方式中,所述向待显示数据源的头部插入新数据源,包括:构造与所述新数据源的数据类型相同的占位数据;将所述占位数据添加到存放待插入新数据源的待显示数据源的对象中,并置于所述待显示数据源的头部,由所述新数据源填充所述占位数据。
第二方面,本发明实施例提供一种基于安卓系统的分区域显示装置,包括:
第一构造模块,用于构造第一对象;
第一获取模块,用于获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;
第二构造模块,用于构造第二对象;
第二获取模块,用于获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;
垂直合并模块,用于对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;
显示模块,用于对所述垂直合并后得到的结果进行显示。
结合第二方面,在第二方面的第一种实施方式中,所述第一构造模块,具体用于通过安卓系统提供的MatrixCursor构造第一对象;
所述第二构造模块,具体用于通过安卓系统提供的MatrixCursor构造第二对象。
结合第二方面,在第二方面的第二种实施方式中,所述第一获取模块,具体用于通过安卓系统提供的游标接口获取在第一区域显示的第一待显示数据源;
所述第二获取模块,具体用于通过安卓系统提供的游标接口获取在第二区域显示的第二待显示数据源。
结合第二方面,在第二方面的第三种实施方式中,所述垂直合并模块包括:
构造数组子模块,用于构造包括所述第一待显示数据源和所述第二待显示数据源的游标数组;
合并子模块,用于通过安卓系统提供的MergeCursor对所述游标数组中的第一待显示数据源和第二待显示数据源进行垂直合并。
结合第二方面及第二方面的第一种~第三种实施方式中的任意一种实施方式,在第二方面的第四种实施方式中,所述装置还包括:插入新数据源模块,用于向待显示数据源的头部插入新数据源。
结合第二方面,在第二方面的第五种实施方式中,所述插入新数据源模块包括:
构造占位数据子模块,用于构造与所述新数据源的数据类型相同的占位数据;
添加及填充子模块,用于将所述占位数据添加到存放待插入新数据源的待显示数据源的对象中,并置于所述待显示数据源的头部,由所述新数据源填充所述占位数据。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行以下步骤:
构造第一对象;
获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;
构造第二对象;
获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;
对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;
对所述垂直合并后得到的结果进行显示。
第四方面,本发明实施例还提供了一种存储介质,用于存储应用程序,所述应用程序用于执行本发明实施例所提供的一种基于安卓系统的分区域显示方法。
第五方面,本发明实施例还提供了一种应用程序,用于执行本发明实施例所提供的一种基于安卓系统的分区域显示方法。
本发明实施例提供的一种基于安卓系统的分区域显示方法、装置及电子设备,通过构造第一对象,获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中,构造第二对象,获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中,对所述第一待显示数据源和所述第二待显示数据源进行垂直合并,对所述垂直合并后得到的结果进行显示,能够方便、快速地实现不同数据源的分区域显示。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例基于安卓系统的分区域显示方法的流程图;
图2为应用本发明所述方法将特别关注和WhatsCall好友分组显示,并将“邀请好友”插入WhatsCall好友列表中的示意图;
图3为本发明的实施例基于安卓系统的分区域显示不同数据的装置的方框图;
图4为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明的实施例基于安卓系统的分区域显示不同数据的方法的流程图,如图1所示,本实施例的方法可以包括:
步骤101、构造第一对象;
步骤102、获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;
步骤103、构造第二对象;
步骤104、获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;
步骤105、对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;
步骤106、对所述垂直合并后得到的结果进行显示。
本实施例中,步骤101构造第一对象,步骤103构造第二对象。所述第一对象和第二对象用于分别存放步骤102和步骤104中的第一待显示数据源和第二待显示数据源。Java构造对象有4种方法,分别是:用new语句创建对象;运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法;调用对象的clone()方法;运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。用new语句创建对象是构造对象最常见的方法。
值得说明的是,从字面上看,步骤101和步骤103只是构造了第一对象和第二对象,但并不限于第一、第二两个对象,实际上是为不少于两个待显示数据源的每一个待显示数据源分别构造一个用于存放该待显示数据源的对象。同理,后面涉及的第一、第二对象或待显示数据源的表述中也均不限于第一、第二两个对象或待显示数据源。简便起见,不再分别进行说明。
本实施例中,步骤102获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;步骤104获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中。Java中的对象是一种具体的客观存在,比如一台电视机、一个业务员等。对象对应着内存中表示对象属性的一片数据,比如电视机的尺寸、重量等,业务员的姓名、年龄等。步骤102和步骤104实际上是从数据存储区取出待显示的数据源,然后分别存入对应的对象中。
值得说明的是,步骤101~步骤104的执行不一定严格按照步骤序号从小到大的顺序依次进行,只要步骤101先于步骤102,步骤103先于步骤104即可。
本实施例中,步骤105对所述第一待显示数据源和所述第二待显示数据源进行垂直合并。在安卓系统中,数据源的合并包括水平合并和垂直合并。水平合并是将待合并的数据源按列合并,安卓系统提供的类CursorJoiner就可以实现水平合并,合并后一个数据源的第一列位于前面一个数据源的最后一列的后面。本实施例是对待显示数据源进行垂直合并。垂直合并是按行合并,合并后一个数据源的第一行位于前面一个数据源的最后一行的后面。
本实施例中,步骤106对所述垂直合并后得到的结果进行显示。由于垂直合并是按行合并,因此,对所述垂直合并后得到的结果进行显示后,不同的待显示数据源按从上到下的顺序显示在不同的区域。实现了不同数据源的分区域显示。
作为一可选实施例,所述构造第一对象包括:通过安卓系统提供的MatrixCursor构造第一对象;所述构造第二对象包括:通过安卓系统提供的MatrixCursor构造第二对象。
本实施例给出了一种构造第一对象和的第二对象方法。安卓系统提供了一种游标Cursor接口,每次查询的结果都保存在Cursor中,可以通过遍历Cursor得到当前查询到的所有信息。因为Cursor只是一个接口,不是一个具体的类,因此需要采用安卓系统提供的与Cursor接口相关的类MatrixCursor构造对象。下面是由MatrixCursor构造对象normalCursor的程序代码:
MatrixCursor normalCursor=new MatrixCursor(columnName)
作为一可选实施例,所述获取在第一区域显示的第一待显示数据源,包括:通过安卓系统提供的游标Cursor接口获取在第一区域显示的第一待显示数据源;所述获取在第二区域显示的第二待显示数据源,包括:通过安卓系统提供的游标Cursor接口获取在第二区域显示的第二待显示数据源。
在本实施例中,通过安卓系统提供的游标Cursor接口获取待显示数据源。所谓接口可以看作是没有实现的方法和常量的集合。接口与抽象类相似,接口中的方法只是做了声明,而没有定义任何具体的操作方法。使用接口是为了解决Java语言中不支持多重继承的问题。Java已经创建了许多系统接口,如MouseListener和MouseMotionListener接口,定义了处理鼠标事件的方法,当一个类实现这两个接口后,就可以处理这些鼠标事件。Cursor是一个游标接口,每次查询的结果都保存在Cursor中,可以通过遍历Cursor得到当前查询到的所有信息。
几个常用的Cursor的方法列举如下:
move(int offset):将Curor的游标移动到指定ID;
getCount():得到Cursor总记录条数;
getInt(int columnIndex):根据列名称获得列索引ID;
isFirst():判断当前游标是否为第一条记录。
下面是利用Cursor获取数据的一段程序代码:
int nameColumnIndex=cur.getColumnIndex(People.NAME);
tring name=cur.getString(nameColumnIndex);
while(cur.moveToNext())
{
String email=cursor.getString(cursor.getColumnIndex(RuiXin.EMAIL));
startManagingCursor(cursor);
}
当cur.moveToNext()为假时跳出循环,即Cursor数据循环完毕。
作为一可选实施例,所述对所述第一待显示数据源和所述第二待显示数据源进行垂直合并,包括:
构造包括所述第一待显示数据源和所述第二待显示数据源的游标数组;
通过安卓系统提供的MergeCursor对所述游标数组中的第一待显示数据源和第二待显示数据源进行垂直合并。
在本实施例中,首先将待显示的数据源组成一个游标cursors数组,然后通过安卓系统提供的类MergeCursor对所述游标cursors数组中的第一待显示数据源和第二待显示数据源进行垂直合并。
将存放待显示数据源的对象置入一个大括号中就得到由这些数据源组成的数组。下面是将对象starCursor、whatscallCursor和normalCursor存放的数据组成一个cursors数组的程序代码:
Cursor[]cursors={starCursor,whatscallCursor,normalCursor}
MergeCursor也是安卓系统提供的一个类。MergeCursor与CursorJoiner类似,都可以对数组进行合并,二者不同的是,CursorJoiner实现水平合并,而MergeCursor实现垂直合并。采用MergeCursor合并数据,待合并数据的列名和列数都不需要相同,只是简单地将一个数据按行直接添加到另一个数据的后面,不必比较列名进行匹配添加。
下面给出采用MergeCursor合并数据的一个例子。表1和表2分别是待合并的两个数据,即数据1和数据2,表3是这两个数据合并后的结果数据3。
表1数据1
序号 | 姓名 | 职称 |
1 | 王力军 | 工程师 |
2 | 李莉 | 教授 |
表2数据2
姓名 | 序号 |
张雪娇 | 3 |
马千里 | 4 |
表3数据3
序号 | 姓名 | 职称 |
1 | 王力军 | 工程师 |
2 | 李莉 | 教授 |
张雪娇 | 3 | |
马千里 | 4 |
作为一可选实施例,在所述获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中之后,在所述对所述第一待显示数据源和所述第二待显示数据源进行垂直合并之前,所述方法还包括:向待显示数据源的头部插入新数据源。
本实施例是前述分区域显示实施例技术方案的一种改进方案,向待显示数据源中一个或多个待显示数据源的头部插入一个新数据源,插入的新数据源与所述一个或多个待显示数据源显示在同一区域且位于所述区域的前端。
作为一可选实施例,所述向待显示数据源的头部插入新数据源,包括:
构造与所述新数据源的数据类型相同的占位数据;
将所述占位数据添加到存放待插入新数据源的待显示数据源的对象中,并置于所述待显示数据源的头部,由所述新数据源填充所述占位数据。
本实施例给出了如何向待显示数据源的头部插入一个新数据源的方法。首先构造一个与所述新数据源的数据类型相同的占位数据。然后将所述占位数据添加到存放待插入新数据源的待显示数据源的对象中,并置于所述待显示数据源的头部,用所述新数据源来填充所述占位数据。
下面是向一个待显示数据源的头部插入一新数据源的主要程序代码:
Object[]recommendSection={0,0,0,″″,″″,″″,0,SECTION_RECOMMEND,″″,″″,″″,″″,″″,0,0,0,0,0,0,0};
whatsCallCursor.addRow(recommendSection);
上述程序中构造的占位数据recommendSection一共有20项,第一项到第二十项对应数据类型,与后面的函数addRow()一一对应,构成插入新数据源的占位符。由whatsCallCursor.addRow(recommendSection)把这一项占位数据置于whatscallCursor数据源的头部,并用所述新数据源填充所述占位数据。函数whatsCallCursor.addRow()将在后面给出。
下面给出本发明的具体实施例:将通讯录中的“WhatsCall好友”数据源和“特别关注”数据源显示在不同区域,并在“WhatsCall好友”数据源的头部插入“邀请好友”条目。包括以下步骤:
S1、通过安卓系统提供的MatrixCursor构造存放“WhatsCall好友”数据源和“特别关注”数据源的对象starCursor和whatscallCursor。
主要程序代码如下:
MatrixCursor starCursor=new MatrixCursor(columnName);
MatrixCursor whatscallCursor=new MatrixCursor(columnName);
S2、通过安卓系统提供的Cursor接口分别获取“WhatsCall好友”数据源和“特别关注”数据源,并分别存入对象starCursor和whatsCallCursor中。
主要程序代码如下:
findWhatsCallFriendRow(whatscallCursor,cursor,recommondContactIds);
findStarFriendRow(starCursor,cursor,recommondContactIds);
S3、构造用一个占位数据,把所述占位数据添加到whatsCallCursor对象中,并置于“WhatsCall好友”数据源头部,用“邀请好友”条目填充所述占位数据。
主要程序代码如下:
addRow()是安卓系统提供的一个函数,在上述程度代码中,函数addRow()用于从本地SQLite数据库中提取满足条件的通讯录数据,并填充在objCursor中返回给上层调用者。昵称、头像等信息就包含在其中。
S4、以starCursor和whatsCallCursor为参数构造Cursor数组:
主要程序代码如下:
Cursor[]cursors={starCursor,whatsCallCursor}
S5、通过MergeCursor合并Cursor数组中的starCursor和whatsCallCursor。
主要程序代码如下:
MergeCursor totle=new MergeCursor(cursors)
显示合并后的结果如图2所示。由图2可以看出,“特别关注”数据源显示在和“WhatsCall好友”数据源的上面,而且“邀请好友”条目显示在“WhatsCall好友”数据源的头部。
由上述可见,本实施例基于安卓系统的分区域显示不同数据的方法,通过构造第一对象,获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中,构造第二对象,获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中,对所述第一待显示数据源和所述第二待显示数据源进行垂直合并,对所述垂直合并后得到的结果进行显示,能够方便、快速地实现不同数据源的分区域显示。
图3为本发明实施例基于安卓系统的分区域显示不同数据的装置,如图3所示,本实施例的装置可以包括:第一构造模块11,用于构造第一对象;第一获取模块12,用于获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;第二构造模块13,用于构造第二对象;第二获取模块14,用于获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;垂直合并模块15,用于对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;显示模块16,用于对所述垂直合并后得到的结果进行显示。
在本实施例中,第一构造模块11构造第一对象;第二构造模块13构造第二对象。所述第一对象和第二对象用于分别存放第一待显示数据源和第二待显示数据源。Java构造对象有4种方法,分别是:用new语句创建对象;运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法;调用对象的clone()方法;运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。用new语句创建对象是构造对象最常见的方法。
在本实施例中,第一获取模块12获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;第二获取模块14获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中。Java中的对象是一种具体的客观存在,比如一台电视机、一个业务员等。对象对应着内存中表示对象属性的一片数据,比如电视机的尺寸、重量等,业务员的姓名、年龄等。第一获取模块12和第二获取模块14实际上是从数据存储区取出待显示的数据源,然后分别存入对应的对象中。
在本实施例中,垂直合并模块15对所述第一待显示数据源和所述第二待显示数据源进行垂直合并。在安卓系统中,数据源的合并包括水平合并和垂直合并。水平合并是将待合并的数据源按列合并,安卓系统提供的类CursorJoiner就可以实现水平合并,合并后一个数据源的第一列位于前面一个数据源的最后一列的后面。本实施例是对待显示数据源进行垂直合并。垂直合并是按行合并,合并后一个数据源的第一行位于前面一个数据源的最后一行的后面。
本实施例中,显示模块16对所述垂直合并后得到的结果进行显示。由于垂直合并是按行合并,因此,对所述垂直合并后得到的结果进行显示后,不同的待显示数据源按从上到下的顺序显示在不同的区域。实现了不同数据源的分区域显示。
作为一可选实施例,所述第一构造模块,具体用于通过安卓系统提供的MatrixCursor构造第一对象;所述第二构造模块,具体用于通过安卓系统提供的MatrixCursor构造第二对象。
本实施例给出了一种构造第一对象和第二对象的方法。安卓系统提供了一种游标Cursor接口,每次查询的结果都保存在Cursor中,可以通过遍历Cursor得到当前查询到的所有信息。因为Cursor只是一个接口,不是一个具体的类,因此需要采用安卓系统提供的与Cursor接口相关的类MatrixCursor构造对象。下面是由MatrixCursor构造对象normalCursor的程序代码:
MatrixCursor normalCursor=new MatrixCursor(columnName)
作为一可选实施例,所述第一获取模块,具体用于通过安卓系统提供的游标接口获取在第一区域显示的第一待显示数据源;所述第二获取模块,具体用于通过安卓系统提供的游标接口获取在第二区域显示的第二待显示数据源。
在本实施例中,通过安卓系统提供的游标Cursor接口获取待显示数据源。所谓接口可以看作是没有实现的方法和常量的集合。接口与抽象类相似,接口中的方法只是做了声明,而没有定义任何具体的操作方法。使用接口是为了解决Java语言中不支持多重继承的问题。Java已经创建了许多系统接口,如MouseListener和MouseMotionListener接口,定义了处理鼠标事件的方法,当一个类实现这两个接口后,就可以处理这些鼠标事件。Cursor是一个游标接口,用于保存查询结果,可以通过遍历Cursor得到当前查询到的所有信息。
几个常用的Cursor的方法列举如下:
move(int offset):将Curor的游标移动到指定ID;
getCount():得到Cursor总记录条数;
getInt(int columnIndex):根据列名称获得列索引ID;
isFirst():判断当前游标是否为第一条记录。
下面是利用Cursor获取数据的一段程序代码:
int nameColumnIndex=cur.getColumnIndex(People.NAME);
tring name=cur.getString(nameColumnIndex);
while(cur.moveToNext())
{
String email=cursor.getString(cursor.getColumnIndex(RuiXin.EMAIL));
startManagingCursor(cursor);
}
当cur.moveToNext()为假时跳出循环,即Cursor数据循环完毕。
作为一可选实施例,所述垂直合并模块15包括:
构造数组子模块,用于构造包括所述第一待显示数据源和所述第二待显示数据源的游标数组;
合并子模块,用于通过安卓系统提供的MergeCursor对所述游标数组中的第一待显示数据源和第二待显示数据源进行垂直合并。
在本实施例中,所述垂直合并模块15将待显示的数据源组成一个游标cursors数组,然后通过安卓系统提供的类MergeCursor对所述游标cursors数组中的第一待显示数据源和第二待显示数据源进行垂直合并。
将存放待显示数据源的对象置入一个大括号中就得到由这些数据源组成的数组。下面是将对象starCursor、whatscallCursor和normalCursor存放的数据组成一个cursors数组的程序代码:
Cursor[]cursors={starCursor,whatscallCursor,normalCursor}
MergeCursor也是安卓系统提供的一个类。MergeCursor与CursorJoiner类似,都可以对数组进行合并,二者不同的是,CursorJoin实现水平合并,而MergeCursor实现垂直合并。采用MergeCursor合并数据,待合并数据的列名和列数都不需要相同,只是简单地将一个数据按行直接添加到另一个数据的后面,不必比较列名进行匹配添加。
作为一可选实施例,所述装置还包括:插入新数据源模块,用于向待显示数据源的头部插入新数据源。
在本实施例中,所述插入新数据源模块,向待显示数据源中的一个或多个待显示数据源的头部插入一个新数据源,插入的新数据源与所述一个或多个待显示数据源显示在同一区域且位于所述区域的前端。
作为一可选实施例,所述插入新数据源模块包括:构造占位数据子模块,用于构造与所述新数据源的数据类型相同的占位数据;添加及填充子模块,用于将所述占位数据添加到存放待插入新数据源的待显示数据源的对象中,并置于所述待显示数据源的头部,由所述新数据源填充所述占位数据。
在本实施例中,所述插入新数据源模块包括构造占位数据子模块和添加及填充子模块。所述构造占位数据子模块构造一个与所述新数据源的数据类型相同的占位数据,所述添加及填充子模块将所述占位数据添加到存放待插入新数据源的待显示数据源的对象中,并置于所述待显示数据源的头部,用所述新数据源来填充所述占位数据。
下面是向一个待显示数据源的头部插入一新数据源的主要程序代码:
Object[]recommendSection={0,0,0,″″,″″,″″,0,SECTION_RECOMMEND,″″,″″,″″,″″,″″,0,0,0,0,0,0,0};
whatsCallCursor.addRow(recommendSection);
上述程序中构造的占位数据recommendSection一共有20项,第一项到第二十项对应数据类型,与后面的函数addRow()一一对应,构成插入新数据源的占位符。由whatsCallCursor.addRow(recommendSection)把这一项占位数据置于whatscallCursor数据源的头部,并用所述新数据源填充所述占位数据。
图4为本发明电子设备一个实施例的结构示意图,可以实现本发明图1~3所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行以下步骤:构造第一对象;获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;构造第二对象;获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;对所述垂直合并后得到的结果进行显示。
该电子设备以多种形式存在,包括但不限于基于安卓系统的以下设备形式:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有数据交互功能的电子设备。
本发明实施例还提供了一种存储介质,用于存储应用程序,所述应用程序用于执行本发明实施例所提供的一种基于安卓系统的分区域显示方法。
本发明实施例还提供了一种应用程序,用于执行本发明实施例所提供的一种基于安卓系统的分区域显示方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于安卓系统的分区域显示方法,其特征在于,包括:
构造第一对象;
获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;
构造第二对象;
获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;
对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;
对所述垂直合并后得到的结果进行显示。
2.根据权利要求1所述的基于安卓系统的分区域显示方法,其特征在于,
所述构造第一对象包括:通过安卓系统提供的MatrixCursor构造第一对象;
所述构造第二对象包括:通过安卓系统提供的MatrixCursor构造第二对象。
3.根据权利要求1所述的基于安卓系统的分区域显示方法,其特征在于,
所述获取在第一区域显示的第一待显示数据源,包括:通过安卓系统提供的游标接口获取在第一区域显示的第一待显示数据源;
所述获取在第二区域显示的第二待显示数据源,包括:通过安卓系统提供的游标接口获取在第二区域显示的第二待显示数据源。
4.根据权利要求1所述的基于安卓系统的分区域显示方法,其特征在于,所述对所述第一待显示数据源和所述第二待显示数据源进行垂直合并,包括:
构造包括所述第一待显示数据源和所述第二待显示数据源的游标数组;
通过安卓系统提供的MergeCursor对所述游标数组中的第一待显示数据源和第二待显示数据源进行垂直合并。
5.根据权利要求1~4任意一项所述的基于安卓系统的分区域显示方法,其特征在于,在所述获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中之后,在所述对所述第一待显示数据源和所述第二待显示数据源进行垂直合并之前,所述方法还包括:向待显示数据源的头部插入新数据源。
6.根据权利要求5所述的基于安卓系统的分区域显示方法,其特征在于,所述向待显示数据源的头部插入新数据源,包括:
构造与所述新数据源的数据类型相同的占位数据;
将所述占位数据添加到存放待插入新数据源的待显示数据源的对象中,并置于所述待显示数据源的头部,由所述新数据源填充所述占位数据。
7.一种基于安卓系统的分区域显示装置,其特征在于,包括:
第一构造模块,用于构造第一对象;
第一获取模块,用于获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;
第二构造模块,用于构造第二对象;
第二获取模块,用于获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;
垂直合并模块,用于对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;
显示模块,用于对所述垂直合并后得到的结果进行显示。
8.根据权利要求7所述的基于安卓系统的分区域显示装置,其特征在于,
所述第一构造模块,具体用于通过安卓系统提供的MatrixCursor构造第一对象;
所述第二构造模块,具体用于通过安卓系统提供的MatrixCursor构造第二对象。
9.根据权利要求7所述的基于安卓系统的分区域显示装置,其特征在于,
所述第一获取模块,具体用于通过安卓系统提供的游标接口获取在第一区域显示的第一待显示数据源;
所述第二获取模块,具体用于通过安卓系统提供的游标接口获取在第二区域显示的第二待显示数据源。
10.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行以下步骤:
构造第一对象;
获取在第一区域显示的第一待显示数据源,并将所述第一待显示数据源存放到所述第一对象中;
构造第二对象;
获取在第二区域显示的第二待显示数据源,并将所述第二待显示数据源存放到所述第二对象中;
对所述第一待显示数据源和所述第二待显示数据源进行垂直合并;
对所述垂直合并后得到的结果进行显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610862585.7A CN106406899A (zh) | 2016-09-28 | 2016-09-28 | 一种基于安卓系统的分区域显示方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610862585.7A CN106406899A (zh) | 2016-09-28 | 2016-09-28 | 一种基于安卓系统的分区域显示方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106406899A true CN106406899A (zh) | 2017-02-15 |
Family
ID=59228072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610862585.7A Pending CN106406899A (zh) | 2016-09-28 | 2016-09-28 | 一种基于安卓系统的分区域显示方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106406899A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066564A (zh) * | 2017-03-31 | 2017-08-18 | 武汉斗鱼网络科技有限公司 | 一种基于安卓列表的数据处理方法及装置 |
WO2020134864A1 (zh) * | 2018-12-27 | 2020-07-02 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268191A (zh) * | 2014-09-18 | 2015-01-07 | 用友优普信息技术有限公司 | 单据显示方法和单据显示装置 |
CN105528207A (zh) * | 2015-12-03 | 2016-04-27 | 北京小鸟看看科技有限公司 | 一种虚拟现实系统及其中显示安卓应用图像的方法和装置 |
-
2016
- 2016-09-28 CN CN201610862585.7A patent/CN106406899A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268191A (zh) * | 2014-09-18 | 2015-01-07 | 用友优普信息技术有限公司 | 单据显示方法和单据显示装置 |
CN105528207A (zh) * | 2015-12-03 | 2016-04-27 | 北京小鸟看看科技有限公司 | 一种虚拟现实系统及其中显示安卓应用图像的方法和装置 |
Non-Patent Citations (3)
Title |
---|
传智播客高教产品研发部: "《Android移动应用基础教程》", 31 January 2015, 中国铁道出版社 * |
佚名: "Android Cursor之MergeCursor", 《HTTPS://BLOG.CSDN.NET/FEIMOR/ARTICLE/DETAILS/6656802》 * |
佚名: "Cursor, MergeCursor, MatrixCursor灵活应用", 《HTTPS://BLOG.CSDN.NET/PIGLOVESULA/ARTICLE/DETAILS/22940659》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066564A (zh) * | 2017-03-31 | 2017-08-18 | 武汉斗鱼网络科技有限公司 | 一种基于安卓列表的数据处理方法及装置 |
CN107066564B (zh) * | 2017-03-31 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种基于安卓列表的数据处理方法及装置 |
WO2020134864A1 (zh) * | 2018-12-27 | 2020-07-02 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Spatafora et al. | Structural transformation and the sophistication of production | |
CN100504866C (zh) | 一种综合搜索结果的排序系统及方法 | |
CN104202473B (zh) | 合并会话的方法及移动终端 | |
CN103314371B (zh) | 一种检索的方法和系统 | |
CN104572125B (zh) | 实体关系图的绘制方法、存储方法、绘制装置及存储装置 | |
CN102104635A (zh) | 一种更新互联网协议ip地址库的方法和装置 | |
KR101096821B1 (ko) | 아동의 독서이력공유를 통한 전자책 배포 확산 방법 | |
Jervis | A patchwork of people, pots and places: Material engagements and the construction of ‘the social’in Hamwic (Anglo-Saxon Southampton), UK | |
CN107909368A (zh) | 支付控制方法及装置、终端及可读存储介质 | |
CN106406899A (zh) | 一种基于安卓系统的分区域显示方法、装置及电子设备 | |
CN103902281A (zh) | 一种在虚拟空间内提供虚拟物品储存库的系统 | |
CN110427459A (zh) | 语音识别网络的可视化生成方法、系统及平台 | |
CN101980126A (zh) | 一种功能图标的排列显示方法以及电子终端 | |
CN109739993A (zh) | 服饰知识图谱显示方法、装置、图服务器及存储介质 | |
CN106156295A (zh) | 一种通知栏展示方法、装置及电子设备 | |
CN103927168B (zh) | 一种面向对象的数据模型持久化的方法及装置 | |
CN106649799A (zh) | 一种内容推广方法、装置及电子设备 | |
CN107025295A (zh) | 一种照片电影制作方法及移动终端 | |
CN107609041A (zh) | 列表页生成方法和装置 | |
CN101217513A (zh) | 在即时通讯工具群中获取社区平台相关内容的方法及装置 | |
CN103379201A (zh) | 一种动态显示终端界面的应用的终端及方法 | |
Merrick | Promoting sustainability and simple living online and off-line: An Australian case study | |
CN108920125A (zh) | 一种用于确定语音识别结果的方法与设备 | |
WO2007083313A2 (en) | Construction and use of a database | |
CN107229626A (zh) | 一种插入和查看动态内容的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170215 |
|
RJ01 | Rejection of invention patent application after publication |