CN105094776A - 列表的处理方法和设备 - Google Patents
列表的处理方法和设备 Download PDFInfo
- Publication number
- CN105094776A CN105094776A CN201410202023.0A CN201410202023A CN105094776A CN 105094776 A CN105094776 A CN 105094776A CN 201410202023 A CN201410202023 A CN 201410202023A CN 105094776 A CN105094776 A CN 105094776A
- Authority
- CN
- China
- Prior art keywords
- view
- convertview
- data element
- entry
- current pending
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种列表的处理方法和设备,该方法包括:获取待处理列表中的当前待处理条目,所述当前待处理条目中包含至少一个数据元素;判断getView()中的参数convertView是否为空;若不为空,则将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到所述convertView对应的视图View中。通过复用convertView视图View,从而不必针对每个列表条目来调用getView(),以生成该条目的View,通过复用convertView中的View,大大提高了列表的处理效率,且降低了对android系统处理资源的消耗。
Description
技术领域
本发明属于计算机技术领域,具体是涉及一种列表的处理方法和设备。
背景技术
在现有终端系统例如安卓(android)系统的开发中,一般会需要显示大量数据信息,比如联系人信息、视频文件信息等。其中,列表视图(ListView)作为一种比较常用的组件,它以列表的形式展示数据信息,并且能够根据数据的长度自适应显示。
在ListView中,待显示的数据是以数据列表的形式一行一行显示的,每一行即为一个条目(item),一个条目既可以包含文字,也可以包含文字、图片、按钮等多个数据元素。一般而言,待显示的数据列表中的每个条目通过适配器将该条目中包含的数据映射到对应的视图View上进行显示。
ListView在开始绘制的时候,android系统首先调用getCount()函数,以获得待显示的条目长度,即总共有多少行条目需要显示,之后调用getView()逐一绘制每一行条目。
但是,由于针对每个条目均需要调用一次getView()函数,以生成对应的View,因此,在待显示的数据列表较大的情况下,将会导致次数众多的getView()函数调用,这将导致列表处理效率较低,而且使得系统处理资源消耗较大。
发明内容
针对现有技术中存在的问题,本发明提供一种列表的处理方法和设备,用以克服现有技术中多次调用getView()导致较低的列表处理效率,而且消耗较多的系统处理资源的缺陷。
本发明提供了一种列表的处理方法,包括:
获取待处理列表中的当前待处理条目;
判断获取视图函数getView()中的参数convertView是否为空;
若不为空,则将所述当前待处理条目中的每个数据元素填充到所述convertView对应的视图View中。
本发明提供了一种列表的处理设备,包括:
获取模块,用于获取待处理列表中的当前待处理条目;
判断模块,用于判断获取视图函数getView()中的参数convertView是否为空;
处理模块,用于若所述判断模块判断不为空,则将所述当前待处理条目中的每个数据元素填充到所述convertView对应的视图View中。
本发明提供的列表的处理方法和设备,在获取待处理列表中的包含至少一个数据元素的当前待处理条目后,判断getView()中的参数convertView是否为空,在不为空的情况下,通过复用convertView对应的视图View,来将所述当前待处理条目中的每个数据元素填充到所述convertView对应的View中,通过复用convertView中的View,大大提高了列表的处理效率,且降低了对android系统处理资源的消耗。
附图说明
图1为本发明列表的处理方法实施例一的流程图;
图2为本发明列表的处理方法实施例二的流程图;
图3为本发明列表的处理设备实施例一的结构示意图;
图4为本发明列表的处理设备实施例二的结构示意图。
具体实施方式
图1为本发明列表的处理方法实施例一的流程图,如图1所示,本实施例提供的所述方法可以由以处理设备来执行,该处理设备例如可以是采用android系统的用户终端设备,比如智能手机、平板电脑等。该方法具体包括如下步骤:
步骤101、获取待处理列表中的当前待处理条目;
在使用ListView来显示比如联系人、音视频文件等数据时,这些数据元素被组织成一条条的列表条目进行显示。本实施例中当前待处理条目中包含的至少一个数据元素中,该数据元素例如可以是文字、图片、单选框、复选框、按钮等任一个或多个数据元素。
步骤102、判断获取视图getView()函数中的参数convertView是否为空;
具体地,在获取得到待处理列表中的当前待处理条目之后,需要将该当前待处理条目在用户终端屏幕上进行显示。在使用ListView来显示列表条目时,需要自定义一个适配器或者调用android系统中已经存在的适配器,按照自定义的列表布局文件或android系统内自带的一些布局文件,将待处理条目中包含的各数据元素进行视图View显示,其中,布局文件即描述了各数据元素在最终显示View上的表现形式,比如颜色、大小、位置等。
也就是说,在ListView中,适配器作为连接数据元素与视图View的桥梁,起到将数据元素映射到View上的作用。因此,本实施例中,将该当前待处理条目在用户终端屏幕上进行显示时需要根据实际需要自定义一个适配器,以完成将当前待处理条目中的各数据元素进行View显示的目的。而一般在通过适配器进行数据元素显示时,首先会调用getCount(),以得到待处理列表中需要处理的条目的数量,之后调用getView(),以针对每个列表条目进行该列表条目的View显示处理,即绘制相应的View,并将该列表条目中的各数据元素在该View上进行显示。
该getView()中包含有一个参数position,该参数指示了将要显示的是待处理列表中的第几行,即第几个条目;还有一个重要的参数是convertView,covertView是从布局文件中inflate来的布局。本实施例中,将利用该convertView来实现View复用的目的。
具体地,在系统初始启动之时,对于第一个待处理条目,按照正常的处理过程来显示该第一个条目,但是,在处理完该第一个条目之后,将该条目的视图View即局部进行存储,存储在convertView上,即对该convertView进行赋值。之后针对后续的待处理条目,可以复用之前已经处理过的条目的View。
步骤103、若不为空,则将所述当前待处理条目中的的每个数据元素填充到所述convertView对应的视图View中。
具体到本实施例中,针对当前待处理的条目,首先判断适配器中的getView()中的参数convertView是否为空,若不为空,则说明convertView中存储有之前已经处理过的条目的View,此时将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到所述convertView对应的视图View中,即不再需要重新调用getView(),进行相应View的绘制;若为空,则说明之前还没有处理过其他条目,或者没有存储其他条目的View,此时需按照现有技术中的正常处理流程进行处理,即调用getView(),生成与所述当前待处理条目对应的View,并将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到生成的View中。
本实施例中,在获取待处理列表中的包含至少一个数据元素的当前待处理条目后,判断getView()中的参数convertView是否为空,在不为空的情况下,通过复用convertView视图View,来将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到所述convertView对应的View中,从而不必针对每个列表条目来调用getView(),以生成该条目的View,通过复用convertView中的View,大大提高了列表的处理效率,且降低了对android系统处理资源的消耗。
图2为本发明列表的处理方法实施例二的流程图,如图2所示,该方法包括:
步骤201、获取待处理列表中的当前待处理条目;
步骤202、判断getView()中的参数convertView是否为空,若不为空,则执行步骤203,若为空,则执行步骤205;
在上述采用View复用手段进行数据列表显示的应用中,有可能会出现用户终端屏幕显示出错的情况,举例来说,一般对待处理列表的处理是由事件触发的,比如用户滑动了终端屏幕,因此,一般而言,在对第一个列表条目到用户终端屏幕可容纳的条目数量的那个条目为止,都是采用现有技术中的处理过程进行View处理的,当然,可以通过参数设置进行修改。在复用convertView时,比如第11个条目复用第1个条目的View,往往会出现第11个条目中数据的属性同时被赋予第1个条目中的数据的情况,导致在用户终端屏幕中第1个条目的显示出错。
步骤203、接收用户操作指令,所述操作指令中包括所述用户对所述每个数据元素的操作类型信息;
步骤204、根据所述每个数据元素的操作类型信息分别将所述每个数据元素填充到所述convertView对应的视图View中;
具体地,为了解决上述显示出错的问题,本实施例在图1所示实施例的基础上,在获得当前待处理的条目之后,先判断convertView是否为空,若不为空,则根据用户对该当前待处理条目中各数据元素的操作,即根据接收到的用户操作指令中包括的该用户对每个数据元素的操作类型信息,分别将所述每个数据元素填充到所述convertView对应的视图View中。
本实施例中,该操作类型信息具体可以表现为一个布尔值的标识符,通过对用户对每个数据元素的操作进行操作类型的预先定义,比如对按钮进行按下操作定义为1,不按下定义为0,对单选框进行了选择定义为1,未选择定义为0,比如用户对当前待处理条目中仅包含的按钮和单选框数据元素分别进行了按下和选择的操作,则接收到的操作指令中包含的操作类型信息为11。进而根据该操作类型信息11分别将当前条目中的按钮和单选框填充到convertView对应的视图View中。
本实施例中,根据用户对当前条目中各数据元素的操作,获得各数据元素的操作类型信息,通过将该操作类型信息与对应的条目进行绑定,以使得在View显示时该操作类型信息仅针对当前的条目中的各数据元素,不作用在该当前条目复用的View对应的之前的条目上,从而解决了上述显示出错的问题。
步骤205、调用getView(),生成与所述当前待处理条目对应的View,并将所述当前待处理条目中的每个数据元素填充到生成的View中;
步骤206、将所述生成的View赋值给所述convertView,以使下一个待处理条目在判断所述convertView不为空时,复用赋值给所述convertView的View。
进一步地,当convertView为空时,在调用getView(),生成与所述当前待处理条目对应的View,并将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到生成的View中之后,还需将所述生成的View赋值给所述convertView,以便后续其他条目对该convertView中的View进行复用。可以理解的是,在步骤205中,在生成与所述当前待处理条目对应的View后,在将该待当前处理条目中的每个数据元素填充到生成的View中时,也是根据用户对每个数据元素的操作类型信息进行填充的。即在填充前,也需要执行步骤203中的接收用户操作指令的步骤。
图3为本发明列表的处理设备实施例一的结构示意图,如图3所示,该设备包括:
获取模块11,用于获取待处理列表中的当前待处理条目;
判断模块12,用于判断获取视图getView()函数中的参数convertView是否为空;
处理模块13,用于若判断模块12判断不为空,则将所述当前待处理条目中的每个数据元素填充到所述convertView对应的视图View中。
本实施例的设备可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4为本发明列表的处理设备实施例二的结构示意图,如图4所示,本实施例的设备在图3所示实施例的基础上,所述设备还包括:
接收模块21,用于接收用户操作指令,所述操作指令中包括所述用户对所述每个数据元素的操作类型信息;
相应的,所述处理模块13具体用于:
根据所述每个数据元素的操作类型信息分别将所述每个数据元素填充到所述convertView对应的视图View中。
进一步地,所述处理模块13还用于:
若所述判断模块12判断为空,则调用getView(),生成与所述当前待处理条目对应的View,并将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到生成的View中。
进一步地,所述设备还包括:
赋值模块22,用于将所述生成的View赋值给所述convertView,以使下一个待处理条目在判断所述convertView不为空时,复用赋值给所述convertView的View。
本实施例的设备可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种列表的处理方法,其特征在于,包括:
获取待处理列表中的当前待处理条目;
判断获取视图getView()函数中的convertView参数是否为空;
若不为空,则将所述当前待处理条目中的每个数据元素填充到所述convertView对应的视图中。
2.根据权利要求1所述的方法,其特征在于,所述将所述当前待处理条目中的每个数据元素填充到所述convertView对应的视图View中之前,所述方法还包括:
接收用户操作指令,所述操作指令中包括所述用户对所述当前待处理条目中的每个数据元素的操作类型信息;
相应的,所述将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到所述convertView对应的视图View中,包括:
根据所述每个数据元素的操作类型信息分别将所述每个数据元素填充到所述convertView对应的视图View中。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
若为空,则调用getView(),生成与所述当前待处理条目对应的View,并将所述当前待处理条目中的每个数据元素填充到生成的View中。
4.根据权利要求3所述的方法,其特征在于,所述调用getView(),生成与所述当前待处理条目对应的View之后,还包括:
将所述生成的View赋值给所述convertView,以使下一个待处理条目在判断所述convertView不为空时,复用赋值给所述convertView的View。
5.一种列表的处理设备,其特征在于,包括:
获取模块,用于获取待处理列表中的当前待处理条目;
判断模块,用于判断获取视图getView()函数中的参数convertView是否为空;
处理模块,用于若所述判断模块判断不为空,则将所述当前待处理条目中的每个数据元素填充到所述convertView对应的视图View中。
6.根据权利要求5所述的设备,其特征在于,还包括:
接收模块,用于接收用户操作指令,所述操作指令中包括所述用户对所述当前待处理条目中的每个数据元素的操作类型信息;
相应的,所述处理模块具体用于根据所述每个数据元素的操作类型信息分别将所述每个数据元素填充到所述convertView对应的视图View中。
7.根据权利要求5或6所述的设备,其特征在于,还包括:
所述处理模块还用于若所述判断模块判断为空,则调用getView(),生成与所述当前待处理条目对应的View,并将所述当前待处理条目中的所述至少一个数据元素中的每个数据元素填充到生成的View中。
8.根据权利要求7所述的设备,其特征在于,还包括:
赋值模块,用于将所述生成的View赋值给所述convertView,以使下一个待处理条目在判断所述convertView不为空时,复用赋值给所述convertView的View。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410202023.0A CN105094776A (zh) | 2014-05-14 | 2014-05-14 | 列表的处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410202023.0A CN105094776A (zh) | 2014-05-14 | 2014-05-14 | 列表的处理方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105094776A true CN105094776A (zh) | 2015-11-25 |
Family
ID=54575315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410202023.0A Pending CN105094776A (zh) | 2014-05-14 | 2014-05-14 | 列表的处理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105094776A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105549973A (zh) * | 2015-12-11 | 2016-05-04 | 上海斐讯数据通信技术有限公司 | 一种列表控件中视图列表的数据更新方法及系统 |
CN106293411A (zh) * | 2016-08-25 | 2017-01-04 | 天脉聚源(北京)教育科技有限公司 | 一种控件展示方法及装置 |
CN108509188A (zh) * | 2018-03-30 | 2018-09-07 | 武汉斗鱼网络科技有限公司 | 一种列表的建立方法、装置及电子设备 |
CN109828802A (zh) * | 2017-11-23 | 2019-05-31 | 腾讯科技(武汉)有限公司 | 列表视图显示方法、装置及可读介质 |
CN110069314A (zh) * | 2019-04-29 | 2019-07-30 | 珠海豹好玩科技有限公司 | 一种数据展示方法、装置及相关产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110283225A1 (en) * | 2002-03-14 | 2011-11-17 | Imran Chaudhri | Method and apparatus for controlling a display of a data processing system |
CN102841938A (zh) * | 2012-08-14 | 2012-12-26 | 北京久其软件股份有限公司 | 一种参数化报表的生成方法及系统 |
-
2014
- 2014-05-14 CN CN201410202023.0A patent/CN105094776A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110283225A1 (en) * | 2002-03-14 | 2011-11-17 | Imran Chaudhri | Method and apparatus for controlling a display of a data processing system |
CN102841938A (zh) * | 2012-08-14 | 2012-12-26 | 北京久其软件股份有限公司 | 一种参数化报表的生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
杜铭: "基于Android的数字媒体客户端系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105549973A (zh) * | 2015-12-11 | 2016-05-04 | 上海斐讯数据通信技术有限公司 | 一种列表控件中视图列表的数据更新方法及系统 |
CN106293411A (zh) * | 2016-08-25 | 2017-01-04 | 天脉聚源(北京)教育科技有限公司 | 一种控件展示方法及装置 |
CN109828802A (zh) * | 2017-11-23 | 2019-05-31 | 腾讯科技(武汉)有限公司 | 列表视图显示方法、装置及可读介质 |
CN108509188A (zh) * | 2018-03-30 | 2018-09-07 | 武汉斗鱼网络科技有限公司 | 一种列表的建立方法、装置及电子设备 |
CN110069314A (zh) * | 2019-04-29 | 2019-07-30 | 珠海豹好玩科技有限公司 | 一种数据展示方法、装置及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094776A (zh) | 列表的处理方法和设备 | |
CN105630461A (zh) | 一种android应用界面的管理方法 | |
CN101778169B (zh) | 应用程序界面的动态显示方法及装置 | |
CN104503722A (zh) | 兼容显示屏的方法、装置及移动终端 | |
CN106533926A (zh) | 一种网页信息传播方法以及装置 | |
CN104580267A (zh) | 一种资源下载方法、装置、服务器和相应的系统 | |
CN104219639A (zh) | 一种显示短信记录的方法和装置 | |
CN104468330A (zh) | 分布式消息队列系统的数据处理方法和装置 | |
CN104219356A (zh) | 一种显示搜索联系人信息的方法、装置和移动终端 | |
CN103543901A (zh) | 生成菜单的方法和装置 | |
CN105607901A (zh) | 系统内存的优化方法、装置及终端设备 | |
CN112148395A (zh) | 页面显示方法、装置、设备及存储介质 | |
CN105975306A (zh) | 电子设备的应用程序启动管理方法和装置 | |
US10873549B2 (en) | Message processing method and electronic device supporting the same | |
CN104144242A (zh) | 一种信息处理方法、装置和系统 | |
CN106792206A (zh) | 一种电视菜单自适应更新方法及系统 | |
CN104581695A (zh) | 移动终端配置方法和系统 | |
CN105404557A (zh) | 基于消息队列的进程通信方法 | |
CN105589616A (zh) | 一种在终端上组合多种应用操作的方法、装置及终端 | |
CN114071382A (zh) | 消息发送方法及装置 | |
CN107507125B (zh) | 一种WebP图像压缩中Alpha通道调色板生成方法、系统及主机端 | |
CN104640103A (zh) | 智能卡msisdn号码配置方法及装置 | |
CN106934555B (zh) | 工作流的组织方法及装置、计算机设备及存储介质 | |
CN110704157A (zh) | 一种应用启动方法、相关装置及介质 | |
CN105207827A (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: 20151125 |
|
RJ01 | Rejection of invention patent application after publication |