一种安卓应用程序动态表单的实现方法

文档序号:6519576阅读:368来源:国知局
一种安卓应用程序动态表单的实现方法【专利摘要】本发明提供一种安卓应用程序动态表单的实现方法,包括:步骤1.终端应用程序接收服务端发送的xml格式字符串;步骤2.终端应用程序根据与服务端约定的xml格式协议解析接收到的字符串;步骤3.终端应用程序依据解析结果,使用通过java代码动态创建界面的方式创建表单界面。通过本发明提供的一种安卓应用程序动态表单的实现方法,可以使用安卓界面常规开发方式在安卓应用程序中实现由服务端控制的动态表单效果。【专利说明】一种安卓应用程序动态表单的实现方法【
技术领域
】[0001]本发明涉及安卓(android)应用程序开发领域,尤其是涉及一种安卓应用程序界面的动态变化效果的实现技术。【
背景技术
】[0002]安卓应用程序在一些场景下需要展示受服务端控制的动态表单。这种受服务端控制的动态表单在字段名、字段位置、字段值、字段数量上都是不确定的。因此,这种动态表单无法使用通常android应用程序用来编写界面的androidxml标签方式来事先确定表单结构。同样也不能使用由java代码绘制界面的方式来在接收到服务端的描述信息之前确定表单结构。[0003]对于这种动态表单的实现,目前有一种做法是使用webView解析html页面的技术方案。即在手机终端android应用程序的界面中嵌入webView控件,以此来解析由服务端发送过来的符合html格式,并包含要显示表单的字符串。表单的内容及样式完全由服务端通过发送过来的html格式的字符串控制。这种html格式的字符串经webView解析后的的显示样式是经过对手机的适配的,符合手机的屏幕尺寸特点。[0004]但此种方案在界面交互性的实现上相当不便。如需要在表单页面打开一个新的android页面,需要在要显示的html文件中注册事件方法,然后在终端应用程序中实现这个方法。这样,每一个事件方法的添加就要牵扯到服务端和终端两方面。而在执行效率方面,这种方法的效率也要低于android中的事件方法。在需要传递的数据量方面,html中需要大量的数据用来描述表单的样式。这些基本雷同重复的样式却在每次更新表单时都需要从服务端传递过来,耗费较多的网络流量。另外,因为页面的内容显示使用的是html标签,从而在界面的展示风格上要和通常的android界面的样式保持一致会相对使用android常规技术较为困难。[0005]因此,需要提出一种可以较容易的实现界面的交互性,可以回归到android界面的常规开发技术路线上来从而避免后续开发中的不可预知的困难,同时需要通过网络传输的数据量又较小的方案。【
发明内容】[0006]本发明的目的在于提供一种安卓应用程序动态表单的实现方法,通过该方法可以使用安卓界面常规开发方式在安卓应用程序中实现由服务端控制的动态表单效果。[0007]为解决以上技术问题,本发明提供一种安卓应用程序动态表单的实现方法,包括:[0008]步骤1、终端应用程序接收服务端发送的xml格式字符串;[0009]步骤2、终端应用程序根据与服务端约定的xml格式协议解析接收到的字符串;[0010]步骤3、终端应用程序依据解析结果,使用通过java代码动态创建界面的方式创建表单界面。[0011]进一步地,步骤I中,xml格式字符串由服务端遵照xml格式表单描述协议及需要产生的表单信息生成。[0012]进一步地,所述xml格式表单描述协议约定xml格式文档中用以描述表单结构的信息:表单结构、标签名、标签属性、嵌套关系。[0013]进一步地,步骤2中,终端应用程序依照约定的xml格式协议解析接收到的字符串,得到以下表格的信息:字段名、字段值、字段位置。[0014]进一步地,步骤3中,终端应用程序根据解析得到表格的信息,使用java代码生成表单界面以及为界面组件添加各类事件方法。[0015]进一步地,步骤3中,使用java代码动态生成表单界面的方式至少包括以下一种:[0016]方式1:纯java编码创建界面的方式;[0017]方式2:从androidxml布局文件装载元素组件并由java代码装配成一个完整界面的方式。[0018]进一步地,步骤3中,生成界面的时机至少包括以下一种:[0019]a、和解析过程混合进行,解析完成时界面绘制工作也立即完成;[0020]b、在解析过程中生成界面描述对象,解析完成后再根据解析过程输出的界面描述对象来绘制界面。[0021]与现有技术相比,本发明提供一种可以使用android界面常规实现方式来实现动态表单的方法。经过解析xml格式的字符串,使技术实现回归到android应用程序通常的界面开发方式上来。如此,就可以使用所有android开发中使用的常规、成熟的技术来解决诸如交互性、界面风格不一致等问题以及开发中后续会遇到的需求,使技术路线走上宽阔的常规道路,继而带来降低开发风险,提高成功率等一系列好处。并且相对于前述方案,本方案具有网络传输数据量小、终端对于表单的样式具有最终控制权等优点。【专利附图】【附图说明】[0022]此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:[0023]图1是本发明中服务端向终端发送xml格式字符串的示意图。[0024]图2是本发明提供的一种安卓应用程序动态表单的实现方法的流程图。【具体实施方式】[0025]为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。[0026]如图1所示,本发明提供一种可以使用android界面常规实现方式来实现动态表单的方法。服务端遵照xml格式表单描述协议产生具体的用以描述表格的xml格式的字符串,并发给终端;终端接收服务端发送过来的xml格式字符串,依照约定的xml格式表单描述协议解析此字符串,得到表格的字段名、字段值、字段位置等信息,然后依据这些得到的信息,使用android中通过java代码动态创建界面的方式来创建表单界面。[0027]如图2所示,本发明提供一种安卓应用程序动态表单的实现方法,包括:[0028]步骤1、终端应用程序接收服务端发送的xml格式字符串;其中,xml格式字符串由服务端遵照xml格式表单描述协议产生,用以描述表单结构。[0029]xml格式表单描述协议由开发者自己定义,具体规定了要发送的字符串的格式,该字符串符合xml文档的格式,其中,协议内容包括:有哪些标签、各个标签名、各标签有哪些属性以及各属性名、各属性值的类型、各标签之间的嵌套关系,以及规定前述诸项的含义。协议以文本形式或具体xml文档示例形式给出。最终,服务端依据该协议产生字符串,并传递给终端。[0030]根据xml格式表单描述协议,终端应用程序开发者知道根据该协议产生的xml字符串中的各标签及属性的含义,以及获知表单的嵌套结构,表单元素的位置信息,并根据这些信息确定对该协议所描述的xml格式字符串的解析程序的编写,以及组装出安卓表单界面。也就是说,对于每一个特别的xml格式表单描述协议,都需要编写一个特别的解析xml格式字符串及组装界面的程序。[0031]对于每一个特别的xml格式表单描述协议,对其含义约定只有一种。解析时也按照此唯一约定的含义进行解析。但是,最终装配出来的界面样式会有一定的自由度。因为xml格式的字符串对程序界面的描述一般是不充分的,还需要由终端添加一些信息才能构成显示一个界面的全部信息。所以,终端对程序界面的显示样式具有部分的控制权。[0032]服务端根据xml格式表单描述协议及需要产生的表单信息生成描述一个表单界面的xml格式字符串,并将该xml格式字符串发送给终端。[0033]步骤2、终端应用程序根据与服务端约定的xml格式协议解析接收到的字符串;[0034]终端应用程序依照约定的xml格式协议解析接收到的xml格式字符串,得到包括表格的字段名、字段值、字段位置等信息的解析结果。解析方式可以有多种,如sax/dom/pull解析器等。[0035]步骤3、终端应用程序依据解析结果,使用通过java代码动态创建界面的方式创建表单界面。[0036]终端应用程序根据解析得到表格的字段名、字段值、字段位置等信息,使用java代码动态生成表单界面以及为界面组件添加各类事件方法。[0037]其中,使用java代码动态生成表单界面的方式包括以下两种:[0038]I)纯java编码创建界面的方式;[0039]2)从androidxml布局文件装载元素组件并由java代码装配成一个完整界面的方式。[0040]动态界面是与静态界面相对而言的。两者的区别并不在于界面是采用android标签编写还是采用纯java代码方式或两者的组合方式编写,而是在于界面结构是否会随着输入条件的变化而变化。界面结构是指一个界面中组织界面元素的方式,即布局方式,包括控件的数量,控件类型,控件间的位置关系等因素。[0041]对于结构不需要发生变化的界面,其界面结构在界面每次创建的时候都是相同的,在终端程序运行过程中也不会发生变化。此种需求场景可以一次性确定界面的结构。不论采用哪种界面编写方式,都属于静态界面。例如,一个界面中的文本控件(TextVeiw)的数量和位置没有改变,而仅仅是文本内容,字体大小,字体颜色等文本控件本身的属性发生了变化。虽然界面显示效果也会发生一定的变化,但在此处并不算界面结构上的变化。[0042]对于界面结构会随着输入条件发生变化的需求场景,终端程序在获得输入条件之后才能确定终端程序的界面结构。输入条件不同,终端程序界面结构也就不同。此种在创建界面时需要根据输入条件来确定结构的界面,不论采用哪种界面编写方式,都属于动态界面。其实,此种动态界面的实现不能完全通过安卓标签的方式给出。在为编写界面而做的工作中,必须要全部或部分用到java代码。例如,一个表单界面,表单字段的数量,表单字段的位置会随着输入条件的不同而发生变化,这种界面就是动态界面。[0043]本发明就是为了解决此种对于动态界面的需求而提出的一种解决方案,此方案包括:[0044]1、如何给出和解析创建界面所需要的输入条件;[0045]2、如何根据对输入条件的解析结果创建界面;[0046]以下就解析xml格式字符串的过程并结合前述两种动态生成表单界面的方式进行详细的举例说明:[0047]例如:终端应用程序接收到如下字符串:[0048]〈TableIableName="月度产品计戈丨丨表">〈FieldfieldValue="TCL100"filedName=”品牌"/>〈FieldfieldValue="20"filedName="预计数量”/>〈FieldfieldValue="3000"filedName=”预计金额"/></Table>[0049]根据对产生此xml格式字符串的协议的理解,此xml格式字符串描述了一个表单。表单名字为“月度产品计划表”;[0050]此表单包括三个表单项:[0051]表单项1:品牌TCL100[0052]表单项2:预计数量20[0053]表单项3:预计金额3000[0054]采用任何一种xml文档解析器如D0M/SAX/PULL,可以获取以上信息。获取到以上信息后,可以采取以下两种方式中的一种来装配安卓程序界面:[0055]I)纯java编码创建界面的方式:[0056]在解析到Table标签时,创建一个表格体布局,准备装入表单项:[0057]LinearLayouttableLay=newLinearLayout(this);tableLay.selOrientation(LinearLayout.VERTICAL);tableLay.setLayoutParams(newLinearLayout.LayoutParams(LinearLayout丄ayoutParams.MATCH_PAR.ENT,LinearLayout.LayoutParams.WRAP—CONTENT));[0058]在解析到Field标签时,获取两个标签属性fieldName、fieldValue的值,仓ll建一个表单项视图,将fieldName、fieldValue的值赋予表单项视图,最后将表单项视图加入表格布局:[0059]LinearLayoutitemI=newLinearLayout(this);item1.setOrientation(LinearLayout.HORIZONTAL);item1.setLayoutParams(newLinearLayout.LavoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));TextViewfieldNameI=newTextView(this);LinearLayout.LayoutParamsparamO=newLinearLayout.LayoutParains(LinearLayout.LayoutParams.WRAP_CONTENT,[0060]【权利要求】1.一种安卓应用程序动态表单的实现方法,其特征在于,包括:步骤1、终端应用程序接收服务端发送的xml格式字符串;步骤2、终端应用程序根据与服务端约定的xml格式协议解析接收到的字符串;步骤3、终端应用程序依据解析结果,使用通过java代码动态创建界面的方式创建表单界面。2.如权利要求1所述的方法,其特征在于,步骤I中,xml格式字符串由服务端遵照xml格式表单描述协议及需要产生的表单信息生成。3.如权利要求2所述的方法,其特征在于,所述xml格式表单描述协议约定xml格式文档中用以描述表单结构的信息:表单结构、标签名、标签属性、嵌套关系。4.如权利要求1所述的方法,其特征在于,步骤2中,终端应用程序依照约定的xml格式协议解析接收到的字符串,得到以下表格的信息:字段名、字段值、字段位置。5.如权利要求4所述的方法,其特征在于,步骤3中,终端应用程序根据解析得到表格的信息,使用java代码动态生成表单界面以及为界面组件添加各类事件方法。6.如权利要求5所述的方法,其特征在于,使用java代码动态生成表单界面的方式至少包括以下一种:方式1:纯java编码创建界面的方式;方式2:从androidxml布局文件装载元素组件并由java代码装配成一个完整界面的方式。7.如权利要求5所述的方法,其特征在于,步骤3中,生成界面的时机至少包括以下一种:a、和解析过程混合进行,解析完成时界面绘制工作也立即完成;b、在解析过程中生成界面描述对象,解析完成后再根据解析过程输出的界面描述对象来绘制界面。【文档编号】G06F9/44GK103577197SQ201310577139【公开日】2014年2月12日申请日期:2013年11月18日优先权日:2013年11月18日【发明者】段小亮申请人:深圳市远行科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1