一种移动端应用界面表单动态生成方法及装置转让专利

申请号 : CN201610708008.2

文献号 : CN106371825B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴杰刘奕夫贺路远官磊麦家杰黄俊韬朱伟奇王恩钊

申请人 : 武大吉奥信息技术有限公司

摘要 :

本发明涉及一种表单生成方法及装置,属于信息处理领域,尤其是涉及一种移动端应用界面表单动态生成方法及装置。包括:表单结构配置步骤,用于建立并维护一个表单结构配置文件,所述表单结构配置文件用于描述表单的行列关系;表单控件配置步骤,用于建立并维护一个表单控件配置文件,所述表单控件配置文件用于描述表单控件的类型和属性;控件结构关联步骤,用于根据控件标识将表单结构配置文件定义的表单的单元格和表单控件配置文件中定义的控件相关联。该方法及装置能够降低开发和维护强度,不仅能提供丰富的扩展能力,还能提供丰富的数据初始化和获取方法。

权利要求 :

1.一种移动端应用界面表单动态生成方法,其特征在于,包括:

表单结构配置步骤,用于建立并维护一个表单结构配置文件,所述表单结构配置文件用于描述表单的行列关系;

表单控件配置步骤,用于建立并维护一个表单控件配置文件,所述表单控件配置文件用于描述表单控件的类型和属性;

控件结构关联步骤,用于根据控件标识将表单结构配置文件定义的表单的单元格和表单控件配置文件中定义的控件相关联,包括:向动态表单生成器传入配置文件链接;调用生成表单方法,从接口中获取表单View;按照实际需求将表单View放在合适的地方;调用具体的方法获取表单各控件的值;

其中,开发人员在开发一个表单的时候,要完成两个配置文件的编辑,一个是表单结构配置文件,另外一个是表单控件配置文件;

表单结构配置文件中,可以描述表单的行列关系,以实现不同的表单布局需求,表单控件配置文件中,可以描述表单控件的类型和属性,其中,结构和控件之间以控件的Key值相关联,即结构配置文件描述了表单的行列关系,用户在结构配置文件中描述表单每一行的内容,指明每一个表单格子里面的控件的Key值是什么,而控件配置文件就是描述Key值所对应的控件是什么,各属性值是多少;

表单的生成依赖很多接口方法,有内容获取器接口、内容解析器接口、控件绑定器接口,在动态表单生成器中,提供默认实现的一套接口方法,用户通过Buidler模式自由传入自定义的接口实例,以扩展动态表单生成器的功能;动态表单生成器会解析这些配置文件,然后生成一个表单,在接口获得这个表单以后,将它放到屏幕界面上,修改好的配置文件是存放在服务器文件夹中的,APP运行的时候下载这些配置文件,按照配置文件的内容生成表单,当表单放生改变时,下载最新的配置文件即可;

除了生成表单以外,动态表单生成器还提供数据初始化和数据获取方法,通过一个方法的调用就能获得表单里面所有控件的值,在后续的表单的开发工作,只要利用两个配置文件就可以完成表单的开发,关于控件绑定,控件数据获取和控件初始化工作都由动态表单生成器完成;

其中,动态表单生成器由以下几个部分组成:

(1)DynamicList类:通过Builder模式设置属性和实例化,提供各种表单操作方法;

(2)结构配置文件内容获取器接口IStructureContentGetter和解析器接口IStructureContentAnalyzer;

(3)控件项配置文件内容获取器接口IListItemContentGetter和解析器接口IListItemContentAnalyzer;

(4)控件项关联绑定器接口IItemObserverConnecter:通过观察者模式绑定控件项间的关联关系,并暴露关联响应接口方法;

(5)控件项与表单结构绑定器接口IItemBonder:通过Key字段将控件项绑定到表单结构中;

(6)控件项接口IListItem与控件项抽象类AbstractListItem:所有控件项都继承自这个抽象类;

其中,

DynamicList类需要通过Builder创建实例,用户通过Builder设置DynamicList对象中的各个接口实例,如果不设置任何接口实例,那么DynamicList对象就会使用默认的接口实例,在UML类图中,所有Common前缀的接口实例都是默认的接口实例;

getDynamicListView():调用后返回表单View对象,至于表单View要放在界面上的什么地方,用户自行决定,在这个方法中,程序会利用接口方法完成配置文件解析、控件项绑定、关联绑定、组背景渲染工作;

setAllValue(MapallData):设置表单中的控件值,通过Key值关联用户通过表单生成器生成了一个案件信息表单,表单里面的所有控件的值都为空,如果用户想将某个案件的详细属性显示在这个表单中,那么只要把allData哈希表填充好,通过setAllValue方法传入表单,生成器就会根据allData的Key值绑定对应控件项的值;

getAllXML():获取表单中所有控件项的值的XML结构表,调用这个方法就可以格式化表单中所有控件项的数据,得到XML表字符串,然后用户保存这份表单数据;

StructureObject对象:structureObject对象保存了表单结构对象集和控件项对象集,用户利用这些对象集访问某个表单结构项或控件项;

其中,IStructureContentGetter接口包括以下方法:

getStructureContent(StringstructureFileLink):根据配置文件的链接返回文件内容字符串;

getLinkStringType(StringstructureFileLink):根据配置文件的链接判断链接的类型,返回四个枚举值之一:LinkStringType_PATH本地路径、LinkStringType_URL网络路径、LinkStringType_XML结构数据、LinkStringType_ERROR辨识错误;

程序根据链接的类型执行不同的内容获取操作,本地路径类型则打开本地文件并读取数据、网络路径类型则访问网络文件并下载其内容;

用户自行实现这个接口,自定义配置文件内容获取或类型判断的逻辑;

其中,IListItemContentGetter接口包括以下方法:

IStructureContentGetter是获取结构配置文件内容,IListItemContentGetter是获取控件项配置文件内容,拥有的方法相同,执行逻辑也相同;

其中,IStructureContentAnalyzer接口包括以下方法:

getStructureObject(StructureObjectstructureObject,LinearLayoutdynamicListView,StringstructureFileContent):将结构配置文件内容解析成结构对象集,并保存到StructureObject对象中,StructureObject是DynamicList类的属性,用户利用StructureObject对象访问某个表单结构项或控件项;

用户自行实现这个接口,自行定义配置内容解析和对象集生成的逻辑;

其中,IListItemContentAnalyzer接口包括以下方法:

getListItemObject(DynamicListdynamicList,StructureObjectstructureObject,StringlistItemFileContent,MapallValueMap):将控件项配置文件内容解析成控件项对象集,并保存到StructureObject对象中,同时,传入allValueMap哈希表,根据Key值绑定控件项的值;

用户自行实现这个接口,自行定义配置内容解析和对象集生成以及数值绑定的逻辑;

其中,IItemObserverConnenter接口包括以下方法:

setItemObserverConnect(DynamicListdynamicList ,StructureObjectstructureObject):从structureObject对象中访问控件项对象集,通过观察者模式绑定具备关联逻辑的控件项;

用户自行实现这个接口,自行定义控件项关联绑定逻辑;

其中,IItemBonder接口包括:

各种get方法:在控制项配置文件中,每个控制项都具备一个“”标签,这个标签决定这个控件项又哪种自定义控件实现,”Text”则为一个文本控件项,”CheckBox”则为一个多选框控件项,所有类型的控件项都实现IListItem接口,并且每一种类型的控件项都有一个默认的实现,文本控件项的默认实现为CommonTextItem,多选框控件项的默认实现为CommonCheckBoxItem,IItemBonder接口中的各个Get方法,就是返回对应类型的默认控件项实例,getTextItem方法将返回CommonTextItem实例,getCheckBoxItem方法返回CommonCheckBoxItem实例;

当默认的控件项样式或功能不能满足用户需求时,用户自行实现IListItem接口实现自定义控件项,并重写IItemBonder接口中自定义控件项对应类型的Get方法。

2.根据权利要求1所述的一种移动端应用界面表单动态生成方法,其特征在于,所述表单结构配置文件中定义的单元格存储表单控件标识信息;所述表单控件配置文件中存储有与表单控件类型和属性相对应的表单控件标识信息。

3.根据权利要求1所述的一种移动端应用界面表单动态生成方法,其特征在于,还包括:

表单生成步骤,用于向动态表单生成器传入表单结构配置文件和表单控件配置文件链接;由动态表单生成器调用生成表单方法,并从动态表单生成器接口中获取并显示表单视图。

4.根据权利要求1所述的一种移动端应用界面表单动态生成方法,其特征在于,所述表单控件配置文件中的标签分成两类,一类是通用标签,即每种控件项都能使用的标签,另外一种是私有标签,即特定种类的控件项才具有的标签。

说明书 :

一种移动端应用界面表单动态生成方法及装置

技术领域

[0001] 本发明涉及一种表单生成方法及装置,属于信息处理领域,尤其是涉及一种移动端应用界面表单动态生成方法及装置。

背景技术

[0002] 在各类移动端应用APP中,有许多功能都需要借助表单来完成数据展示或数据收集功能。例如案件信息采集功能需要通过表单供用户填写案件信息,案件列表需要通过表单的集合利用列表控件展示案件简介信息,登录界面需要利用表单收集用户的账号密码信息,如图1-2所示。
[0003] 正因为表单作用范围广,涉及功能多,工程师在开发一款移动应用APP时,需要花不少的时间在表单开发上。例如开发一个案件采集模块需要40工时,其中30工时都在完成表单界面开发、表单控件绑定、表单数据初始化和获取工作上,如图3所示。只有小部分时间是真正投入到功能业务的开发中。
[0004] 除此以外,表单的维护也带来很大的工作量。当客户希望对表单进行一些修改时,例如增加一个表单字段,工程师就要从界面开发、控件绑定到数据初始化和数据获取都要修改工程代码一一实现,改完工程代码以后,还要重新打包APK发布应用,客户还要下载新APK更新应用程序。
[0005] 在移动端应用程序表单开发方面,传统的表单开发和维护手法已经不能满足移动端APP更新迭代周期越来越短的时代趋势,本实施例需要思考一种实现和维护应用表单的方法,使表单的开发和维护变得更加简单快捷,因此,配置化动态表单生成技术应运而生。

发明内容

[0006] 本发明主要是解决现有技术所存在的表单开发强度大的技术问题,提供了一种移动端应用界面表单动态生成方法及装置。该方法及装置能够降低开发和维护强度,不仅能提供丰富的扩展能力,还能提供丰富的数据初始化和获取方法。
[0007] 本发明的上述技术问题主要是通过下述技术方案得以解决的:
[0008] 一种移动端应用界面表单动态生成方法,包括:
[0009] 表单结构配置步骤,用于建立并维护一个表单结构配置文件,所述表单结构配置文件用于描述表单的行列关系;
[0010] 表单控件配置步骤,用于建立并维护一个表单控件配置文件,所述表单控件配置文件用于描述表单控件的类型和属性;
[0011] 控件结构关联步骤,用于根据控件标识将表单结构配置文件定义的表单的单元格和表单控件配置文件中定义的控件相关联。
[0012] 优化的,上述的一种移动端应用界面表单动态生成方法,
[0013] 所述表单结构配置文件中定义的单元格存储表单控件标识信息;所述表单控件配置文件中存储有与表单控件类型和属性相对应的表单控件标识信息。
[0014] 优化的,上述的一种移动端应用界面表单动态生成方法,还包括:
[0015] 表单生成步骤,用于向动态表单生成器传入表单结构配置文件和表单控件配置文件链接;由动态表单生成器调用生成表单方法,并从动态表单生成器接口中获取并显示表单视图。
[0016] 优化的,上述的一种移动端应用界面表单动态生成方法,所述表单控件配置文件中的标签分成两类,一类是通用标签,即每种控件项都能使用的标签,另外一种是私有标签,即特定种类的控件项才具有的标签。
[0017] 一种移动端应用界面表单动态生成装置,包括:
[0018] 表单结构配置模块,用于建立并维护一个表单结构配置文件,所述表单结构配置文件用于描述表单的行列关系;
[0019] 表单控件配置模块,用于建立并维护一个表单控件配置文件,所述表单控件配置文件用于描述表单控件的类型和属性;
[0020] 控件结构关联模块,用于根据控件标识将表单结构配置文件定义的表单的单元格和表单控件配置文件中定义的控件相关联。
[0021] 优化的,上述的一种移动端应用界面表单动态生成方法,
[0022] 所述表单结构配置文件中定义的单元格存储表单控件标识信息;所述表单控件配置文件中存储有与表单控件类型和属性相对应的表单控件标识信息。
[0023] 优化的,上述的一种移动端应用界面表单动态生成方法,还包括:
[0024] 表单生成模块,用于向动态表单生成器传入表单结构配置文件和表单控件配置文件链接;由动态表单生成器调用生成表单方法,并从动态表单生成器接口中获取并显示表单视图。
[0025] 优化的,上述的一种移动端应用界面表单动态生成方法,
[0026] 所述表单控件配置文件中的标签分成两类,一类是通用标签,即每种控件项都能使用的标签,另外一种是私有标签,即特定种类的控件项才具有的标签。
[0027] 因此,本发明具有如下优点:
[0028] (1)解决了传统的表单开发要进行大量的界面和代码开发工作,费时费力,并且必须通过专业的工程师才能开发的技术问题。本发明提供配置化表单生成技术,用户无需编写界面逻辑和代码就能完成表单开发,并且配置文件的结构清晰易懂,即使不懂移动端开发的实施人员也能完成表单开发工作。
[0029] (2)解决了传统表单维护费时费力,并且表单变更需求频繁导致工作效率较低的问题。采用本发明只进行APP开发,表单的维护工作强度大大减低,工程师可以把时间花在其他地方,而表单维护工作则交由实施人员处理。再者,表单的维护不用更新APP,用户不需要在每次表单更新以后重复下载更新APP,减少了用户下载更新APP的次数,提高了用户的使用体验。
[0030] (3)传统的表单生成技术只解决表单生成问题,本发明还解决表单里面的控件数据初始化和数据获取问题。只需要通过一个接口方法就能获得表单里面所有控件的值,在降低表单开发工作强度的同时,也降低了数据方面开发工作的强度。而且数据初始化的数据源是多样的,可以是XML数据、JSON数据或者是哈希表数据。

附图说明

[0031] 附图1是现有技术中的信息采集表单示意图;
[0032] 附图2是现有技术中的息列表表单结构示意图;
[0033] 附图3是现有技术中的表单开发流程示意图;
[0034] 附图4是现有技术中的表单维护流程示意图;
[0035] 附图5是本发明中表单配置文件与表单的关系;
[0036] 附图6是本发明表单视图效果图;
[0037] 附图7是图6的表单配置文件示意图;
[0038] 附图8是本发明的另一种表单视图效果图;
[0039] 附图9是图8的表单配置文件示意图;
[0040] 附图10是发明的再一种表单视图效果图;
[0041] 附图11是图10的表单配置文件示意图。

具体实施方式

[0042] 下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0043] 实施例:
[0044] 一、动态表单生成方法
[0045] 本技术中的表单生成工作借助配置文件完成,开发人员在开发一个表单的时候,要完成两个配置文件的编辑,一个是表单结构配置文件,另外一个是表单控件配置文件。之所以将结构和控件分成两个配置文件描述,是因为如果将表单的结构和控件的配置内容都糅合到一个文件中时,配置文件的内容就会很长,不便于阅读和编辑,再者,将结构和控件分别在单独的配置文件中描述,可以让工程师更灵活更清晰地掌握表单的形态和内容,便于后期维护。
[0046] 表单结构配置文件中,可以描述表单的行列关系,以实现不同的表单布局需求。表单控件配置文件中,可以描述表单控件的类型和属性,其中,结构和控件之间以控件的Key值相关联。也就是说,结构配置文件描述了表单的行列关系,用户在结构配置文件中描述表单每一行的内容,指明每一个表单格子里面的控件的Key值是什么。而控件配置文件就是描述Key值所对应的控件是什么,各属性值是多少。
[0047] 配置文件这一块理解好以后,就剩下接口实例问题。表单的生成依赖很多接口方法,有内容获取器接口、内容解析器接口、控件绑定器接口等,在动态表单生成器中,本实施例提供默认实现的一套接口方法,用户也可以通过Buidler模式自由传入自定义的接口实例,以扩展动态表单生成器的功能。
[0048] 使用此方法完成一个表单开发的话,要完成以下几个工作:
[0049] (1)编辑结构和控件配置文件
[0050] (2)向动态表单生成器传入配置文件链接
[0051] (3)调用生成表单方法,从接口中获取表单View
[0052] (4)按照实际需求将表单View放在合适的地方
[0053] (5)调用具体的方法获取表单各控件的值
[0054] 从以上的工作步骤中可以看到,开发一个表单的时候,不需要进行任何代码编写工作,只要完成配置文件编写就行了。动态表单生成器会解析这些配置文件,然后生成一个表单,用户只要在接口获得这个表单以后,将他放到屏幕界面上就OK。编辑配置文件比编辑代码要简单快捷得多,所以势必大大降低表单的开发工作强度。因为表单的开发不需要编写代码,那么表单的维护工作也就不涉及代码修改工作,表单的维护只要修改配置文件就行了。修改好的配置文件是存放在服务器文件夹中的,APP运行的时候下载这些配置文件,按照配置文件的内容生成表单,当表单放生改变时,下载最新的配置文件即可,不需要像以前一样因为代码修改了所以要重新下载APP。
[0055] 除了生成表单以外,本实施例的动态表单生成器还提供数据初始化和数据获取方法,可以通过一个方法的调用就能获得表单里面所有控件的值,极大地降低了开发工作量。在后续的表单的开发工作,只要利用两个配置文件就可以完成表单的开发,关于控件绑定,控件数据获取和控件初始化工作都由动态表单生成器完成。
[0056] 二、动态表单生成器的设计
[0057] 动态表单生成器由以下几个部分组成:
[0058] (1)DynamicList类:通过Builder模式设置属性和实例化,提供各种表单操作方法。
[0059] (2)结构配置文件内容获取器接口IStructureContentGetter和解析器接口IStructureContentAnalyzer。
[0060] (3)控件项配置文件内容获取器接口IListItemContentGetter和解析器接口IListItemContentAnalyzer。
[0061] (4)控件项关联绑定器接口IItemObserverConnecter:通过观察者模式绑定控件项间的关联关系,并暴露关联响应接口方法。
[0062] (5)控件项与表单结构绑定器接口IItemBonder:通过Key字段将控件项绑定到表单结构中。
[0063] (6)控件项接口IListItem与控件项抽象类AbstractListItem:所有控件项都继承自这个抽象类。
[0064] 下面分别介绍几个组成部分的结构和功能。
[0065] 1、DynamicList类
[0066] DynamicList类需要通过Builder创建实例,用户可以通过Builder设置DynamicList对象中的各个接口实例,如果不设置任何接口实例,那么DynamicList对象就会使用默认的接口实例,在UML类图中,所有Common前缀的接口实例都是默认的接口实例。
[0067] getDynamicListView():调用后返回表单View对象,至于表单View要放在界面上的什么地方,用户自行决定。在这个方法中,程序会利用接口方法完成配置文件解析、控件项绑定、关联绑定、组背景渲染工作。
[0068] setAllValue(MapallData):设置表单中的控件值,通过Key值关联。例如用户通过表单生成器生成了一个案件信息表单,表单里面的所有控件的值都为空,如果用户想将某个案件的详细属性显示在这个表单中,那么只要把allData哈希表填充好,通过setAllValue方法传入表单,生成器就会根据allData的Key值绑定对应控件项的值。
[0069] getAllXML():获取表单中所有控件项的值的XML结构表。调用这个方法就可以格式化表单中所有控件项的数据,得到XML表字符串,然后用户就可以保存这份表单数据。
[0070] StructureObject对象:structureObject对象保存了表单结构对象集和控件项对象集,用户可以利用这些对象集访问某个表单结构项或控件项。
[0071] 2、IStructureContentGetter接口
[0072] getStructureContent(StringstructureFileLink):根据配置文件的链接返回文件内容字符串。
[0073] getLinkStringType(StringstructureFileLink):根据配置文件的链接判断链接的类型,返回四个枚举值之一:LinkStringType_PATH(本地路径)、LinkStringType_URL(网络路径)、LinkStringType_XML(XML结构数据)、LinkStringType_ERROR(辨识错误)。
[0074] 程序根据链接的类型执行不同的内容获取操作,例如本地路径类型则打开本地文件并读取数据、网络路径类型则访问网络文件并下载其内容。
[0075] 用户可以自行实现这个接口,自定义配置文件内容获取或类型判断的逻辑。
[0076] 3、IListItemContentGetter接口
[0077] IStructureContentGetter是获取结构配置文件内容,IListItemContentGetter是获取控件项配置文件内容,拥有的方法相同,执行逻辑也相同,不作赘述。
[0078] 4、IStructureContentAnalyzer接口
[0079] getStructureObject(StructureObjectstructureObject,LinearLayoutdynamicListView,StringstructureFileContent):将结构配置文件内容解析成结构对象集,并保存到StructureObject对象中。StructureObject是DynamicList类的属性,用户可以利用StructureObject对象访问某个表单结构项或控件项。
[0080] 用户可以自行实现这个接口,自行定义配置内容解析和对象集生成的逻辑。
[0081] 5、IListItemContentAnalyzer接口
[0082] ge tLis tIt emO bjec t(Dy nam icLi std ynam icL ist ,StructureObjectstructureObject,StringlistItemFileContent,MapallValueMap):将控件项配置文件内容解析成控件项对象集,并保存到StructureObject对象中。同时,可以传入allValueMap哈希表,根据Key值绑定控件项的值。
[0083] 用户可以自行实现这个接口,自行定义配置内容解析和对象集生成以及数值绑定的逻辑。
[0084] 6、IItemObserverConnenter接口
[0085] setItemObserverConnect(DynamicListdynamicList ,StructureObjectstructureObject):从structureObject对象中访问控件项对象集,通过观察者模式绑定具备关联逻辑的控件项。
[0086] 用户可以自行实现这个接口,自行定义控件项关联绑定逻辑。
[0087] 7、IItemBonder接口
[0088] 各种get方法:在控制项配置文件中,每个控制项都具备一个“”标签,这个标签决定这个控件项又哪种自定义控件实现,例如”Text”则为一个文本控件项,”CheckBox”则为一个多选框控件项。所有类型的控件项都实现IListItem接口,并且每一种类型的控件项都有一个默认的实现,例如文本控件项的默认实现为CommonTextItem,多选框控件项的默认实现为CommonCheckBoxItem。IItemBonder接口中的各个Get方法,就是返回对应类型的默认控件项实例,例如getTextItem方法将返回CommonTextItem实例,getCheckBoxItem方法返回CommonCheckBoxItem实例。
[0089] 当默认的控件项样式或功能不能满足用户需求时,用户可以自行实现IListItem接口实现自定义控件项,并重写IItemBonder接口中自定义控件项对应类型的Get方法。例如,用户觉得CommonTextItem不能满足项目要求,所以继承了IListItem接口实现了一个叫CustomTextItem的自定义控件项,因为用户想用CustomTextItem代替CommonTextItem,所以要重写IItemBonder接口中的getTextItem方法,使getTextItem方法返回CustomTextItem实例而不是CommonTextItem实例。
[0090] 三、配置文件设计
[0091] 1、表单结构配置文件设计
[0092] 表单结构配置文件中具备以下几种标签:
[0093]
[0094] 示例1:
[0095] 现在需要实现如图6的表单,表单结构配置文件内容如图7所示。
[0096] 示例2:
[0097] 现在需要实现如图8所示结构的表单,表单结构配置文件如图9所示。
[0098] 2、控件项配置文件设计
[0099] 控件项配置文件中的标签分成两类,一类是通用标签,即每种控件项都能使用的标签,另外一种是私有标签,即特定种类的控件项才具有的标签。
[0100] 涉及到长度或高度单位的标签,均使用“dp”作为单位。
[0101] 控件项配置文件中具备以下通用标签:
[0102]
[0103] 选项类控件项,如单选框、多选框、下拉框,具备以下私有标签:
[0104]
[0105]
[0106] 文本类控件项,如纯文本、文本框、开关、日期时间选择,具备以下私有标签:
[0107]
[0108] PicSelectorItem图片选择器私有标签:
[0109]
[0110] GeodesyItem地理几何要素拾取控件私有标签:
[0111]
[0112] DateTimePickerItem日期时间选择控件私有标签:
[0113]
[0114]
[0115] 示例1:
[0116] 现在需要编辑如下表单中的控件项配置文件:
[0117] 要求:
[0118] (1)性别选项的返回值为“Man”或“Woman”。
[0119] (2)当性别选项为“男”时,显示职业下拉框;当性别为“女”时,[0120] 隐藏职业下拉框。
[0121] (3)职业下拉框包含“产品经理”“项目经理”“技术总监”三个选项。
[0122] (4)“省”“市”两个标签要用红色,并且字号为40dp。
[0123] (5)到期日只需要选择年月日,并且默认选择2016-06-30。
[0124] 效果如图10所示。配置文件内容如图11所示。
[0125] 如果用户想添加一种生成器内不存在的控件项类型,也可以通过实现接口来添加一种自定义类型的控件项。
[0126] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。