国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法

      文檔序號:6519576閱讀:415來源:國知局
      一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法【專利摘要】本發(fā)明提供一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法,包括:步驟1.終端應(yīng)用程序接收服務(wù)端發(fā)送的xml格式字符串;步驟2.終端應(yīng)用程序根據(jù)與服務(wù)端約定的xml格式協(xié)議解析接收到的字符串;步驟3.終端應(yīng)用程序依據(jù)解析結(jié)果,使用通過java代碼動(dòng)態(tài)創(chuàng)建界面的方式創(chuàng)建表單界面。通過本發(fā)明提供的一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法,可以使用安卓界面常規(guī)開發(fā)方式在安卓應(yīng)用程序中實(shí)現(xiàn)由服務(wù)端控制的動(dòng)態(tài)表單效果?!緦@f明】一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法【
      技術(shù)領(lǐng)域
      】[0001]本發(fā)明涉及安卓(android)應(yīng)用程序開發(fā)領(lǐng)域,尤其是涉及一種安卓應(yīng)用程序界面的動(dòng)態(tài)變化效果的實(shí)現(xiàn)技術(shù)?!?br>背景技術(shù)
      】[0002]安卓應(yīng)用程序在一些場景下需要展示受服務(wù)端控制的動(dòng)態(tài)表單。這種受服務(wù)端控制的動(dòng)態(tài)表單在字段名、字段位置、字段值、字段數(shù)量上都是不確定的。因此,這種動(dòng)態(tài)表單無法使用通常android應(yīng)用程序用來編寫界面的androidxml標(biāo)簽方式來事先確定表單結(jié)構(gòu)。同樣也不能使用由java代碼繪制界面的方式來在接收到服務(wù)端的描述信息之前確定表單結(jié)構(gòu)。[0003]對于這種動(dòng)態(tài)表單的實(shí)現(xiàn),目前有一種做法是使用webView解析html頁面的技術(shù)方案。即在手機(jī)終端android應(yīng)用程序的界面中嵌入webView控件,以此來解析由服務(wù)端發(fā)送過來的符合html格式,并包含要顯示表單的字符串。表單的內(nèi)容及樣式完全由服務(wù)端通過發(fā)送過來的html格式的字符串控制。這種html格式的字符串經(jīng)webView解析后的的顯示樣式是經(jīng)過對手機(jī)的適配的,符合手機(jī)的屏幕尺寸特點(diǎn)。[0004]但此種方案在界面交互性的實(shí)現(xiàn)上相當(dāng)不便。如需要在表單頁面打開一個(gè)新的android頁面,需要在要顯示的html文件中注冊事件方法,然后在終端應(yīng)用程序中實(shí)現(xiàn)這個(gè)方法。這樣,每一個(gè)事件方法的添加就要牽扯到服務(wù)端和終端兩方面。而在執(zhí)行效率方面,這種方法的效率也要低于android中的事件方法。在需要傳遞的數(shù)據(jù)量方面,html中需要大量的數(shù)據(jù)用來描述表單的樣式。這些基本雷同重復(fù)的樣式卻在每次更新表單時(shí)都需要從服務(wù)端傳遞過來,耗費(fèi)較多的網(wǎng)絡(luò)流量。另外,因?yàn)轫撁娴膬?nèi)容顯示使用的是html標(biāo)簽,從而在界面的展示風(fēng)格上要和通常的android界面的樣式保持一致會(huì)相對使用android常規(guī)技術(shù)較為困難。[0005]因此,需要提出一種可以較容易的實(shí)現(xiàn)界面的交互性,可以回歸到android界面的常規(guī)開發(fā)技術(shù)路線上來從而避免后續(xù)開發(fā)中的不可預(yù)知的困難,同時(shí)需要通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量又較小的方案?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明的目的在于提供一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法,通過該方法可以使用安卓界面常規(guī)開發(fā)方式在安卓應(yīng)用程序中實(shí)現(xiàn)由服務(wù)端控制的動(dòng)態(tài)表單效果。[0007]為解決以上技術(shù)問題,本發(fā)明提供一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法,包括:[0008]步驟1、終端應(yīng)用程序接收服務(wù)端發(fā)送的xml格式字符串;[0009]步驟2、終端應(yīng)用程序根據(jù)與服務(wù)端約定的xml格式協(xié)議解析接收到的字符串;[0010]步驟3、終端應(yīng)用程序依據(jù)解析結(jié)果,使用通過java代碼動(dòng)態(tài)創(chuàng)建界面的方式創(chuàng)建表單界面。[0011]進(jìn)一步地,步驟I中,xml格式字符串由服務(wù)端遵照xml格式表單描述協(xié)議及需要產(chǎn)生的表單信息生成。[0012]進(jìn)一步地,所述xml格式表單描述協(xié)議約定xml格式文檔中用以描述表單結(jié)構(gòu)的信息:表單結(jié)構(gòu)、標(biāo)簽名、標(biāo)簽屬性、嵌套關(guān)系。[0013]進(jìn)一步地,步驟2中,終端應(yīng)用程序依照約定的xml格式協(xié)議解析接收到的字符串,得到以下表格的信息:字段名、字段值、字段位置。[0014]進(jìn)一步地,步驟3中,終端應(yīng)用程序根據(jù)解析得到表格的信息,使用java代碼生成表單界面以及為界面組件添加各類事件方法。[0015]進(jìn)一步地,步驟3中,使用java代碼動(dòng)態(tài)生成表單界面的方式至少包括以下一種:[0016]方式1:純java編碼創(chuàng)建界面的方式;[0017]方式2:從androidxml布局文件裝載元素組件并由java代碼裝配成一個(gè)完整界面的方式。[0018]進(jìn)一步地,步驟3中,生成界面的時(shí)機(jī)至少包括以下一種:[0019]a、和解析過程混合進(jìn)行,解析完成時(shí)界面繪制工作也立即完成;[0020]b、在解析過程中生成界面描述對象,解析完成后再根據(jù)解析過程輸出的界面描述對象來繪制界面。[0021]與現(xiàn)有技術(shù)相比,本發(fā)明提供一種可以使用android界面常規(guī)實(shí)現(xiàn)方式來實(shí)現(xiàn)動(dòng)態(tài)表單的方法。經(jīng)過解析xml格式的字符串,使技術(shù)實(shí)現(xiàn)回歸到android應(yīng)用程序通常的界面開發(fā)方式上來。如此,就可以使用所有android開發(fā)中使用的常規(guī)、成熟的技術(shù)來解決諸如交互性、界面風(fēng)格不一致等問題以及開發(fā)中后續(xù)會(huì)遇到的需求,使技術(shù)路線走上寬闊的常規(guī)道路,繼而帶來降低開發(fā)風(fēng)險(xiǎn),提高成功率等一系列好處。并且相對于前述方案,本方案具有網(wǎng)絡(luò)傳輸數(shù)據(jù)量小、終端對于表單的樣式具有最終控制權(quán)等優(yōu)點(diǎn)?!緦@綀D】【附圖說明】[0022]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:[0023]圖1是本發(fā)明中服務(wù)端向終端發(fā)送xml格式字符串的示意圖。[0024]圖2是本發(fā)明提供的一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法的流程圖?!揪唧w實(shí)施方式】[0025]為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0026]如圖1所示,本發(fā)明提供一種可以使用android界面常規(guī)實(shí)現(xiàn)方式來實(shí)現(xiàn)動(dòng)態(tài)表單的方法。服務(wù)端遵照xml格式表單描述協(xié)議產(chǎn)生具體的用以描述表格的xml格式的字符串,并發(fā)給終端;終端接收服務(wù)端發(fā)送過來的xml格式字符串,依照約定的xml格式表單描述協(xié)議解析此字符串,得到表格的字段名、字段值、字段位置等信息,然后依據(jù)這些得到的信息,使用android中通過java代碼動(dòng)態(tài)創(chuàng)建界面的方式來創(chuàng)建表單界面。[0027]如圖2所示,本發(fā)明提供一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法,包括:[0028]步驟1、終端應(yīng)用程序接收服務(wù)端發(fā)送的xml格式字符串;其中,xml格式字符串由服務(wù)端遵照xml格式表單描述協(xié)議產(chǎn)生,用以描述表單結(jié)構(gòu)。[0029]xml格式表單描述協(xié)議由開發(fā)者自己定義,具體規(guī)定了要發(fā)送的字符串的格式,該字符串符合xml文檔的格式,其中,協(xié)議內(nèi)容包括:有哪些標(biāo)簽、各個(gè)標(biāo)簽名、各標(biāo)簽有哪些屬性以及各屬性名、各屬性值的類型、各標(biāo)簽之間的嵌套關(guān)系,以及規(guī)定前述諸項(xiàng)的含義。協(xié)議以文本形式或具體xml文檔示例形式給出。最終,服務(wù)端依據(jù)該協(xié)議產(chǎn)生字符串,并傳遞給終端。[0030]根據(jù)xml格式表單描述協(xié)議,終端應(yīng)用程序開發(fā)者知道根據(jù)該協(xié)議產(chǎn)生的xml字符串中的各標(biāo)簽及屬性的含義,以及獲知表單的嵌套結(jié)構(gòu),表單元素的位置信息,并根據(jù)這些信息確定對該協(xié)議所描述的xml格式字符串的解析程序的編寫,以及組裝出安卓表單界面。也就是說,對于每一個(gè)特別的xml格式表單描述協(xié)議,都需要編寫一個(gè)特別的解析xml格式字符串及組裝界面的程序。[0031]對于每一個(gè)特別的xml格式表單描述協(xié)議,對其含義約定只有一種。解析時(shí)也按照此唯一約定的含義進(jìn)行解析。但是,最終裝配出來的界面樣式會(huì)有一定的自由度。因?yàn)閤ml格式的字符串對程序界面的描述一般是不充分的,還需要由終端添加一些信息才能構(gòu)成顯示一個(gè)界面的全部信息。所以,終端對程序界面的顯示樣式具有部分的控制權(quán)。[0032]服務(wù)端根據(jù)xml格式表單描述協(xié)議及需要產(chǎn)生的表單信息生成描述一個(gè)表單界面的xml格式字符串,并將該xml格式字符串發(fā)送給終端。[0033]步驟2、終端應(yīng)用程序根據(jù)與服務(wù)端約定的xml格式協(xié)議解析接收到的字符串;[0034]終端應(yīng)用程序依照約定的xml格式協(xié)議解析接收到的xml格式字符串,得到包括表格的字段名、字段值、字段位置等信息的解析結(jié)果。解析方式可以有多種,如sax/dom/pull解析器等。[0035]步驟3、終端應(yīng)用程序依據(jù)解析結(jié)果,使用通過java代碼動(dòng)態(tài)創(chuàng)建界面的方式創(chuàng)建表單界面。[0036]終端應(yīng)用程序根據(jù)解析得到表格的字段名、字段值、字段位置等信息,使用java代碼動(dòng)態(tài)生成表單界面以及為界面組件添加各類事件方法。[0037]其中,使用java代碼動(dòng)態(tài)生成表單界面的方式包括以下兩種:[0038]I)純java編碼創(chuàng)建界面的方式;[0039]2)從androidxml布局文件裝載元素組件并由java代碼裝配成一個(gè)完整界面的方式。[0040]動(dòng)態(tài)界面是與靜態(tài)界面相對而言的。兩者的區(qū)別并不在于界面是采用android標(biāo)簽編寫還是采用純java代碼方式或兩者的組合方式編寫,而是在于界面結(jié)構(gòu)是否會(huì)隨著輸入條件的變化而變化。界面結(jié)構(gòu)是指一個(gè)界面中組織界面元素的方式,即布局方式,包括控件的數(shù)量,控件類型,控件間的位置關(guān)系等因素。[0041]對于結(jié)構(gòu)不需要發(fā)生變化的界面,其界面結(jié)構(gòu)在界面每次創(chuàng)建的時(shí)候都是相同的,在終端程序運(yùn)行過程中也不會(huì)發(fā)生變化。此種需求場景可以一次性確定界面的結(jié)構(gòu)。不論采用哪種界面編寫方式,都屬于靜態(tài)界面。例如,一個(gè)界面中的文本控件(TextVeiw)的數(shù)量和位置沒有改變,而僅僅是文本內(nèi)容,字體大小,字體顏色等文本控件本身的屬性發(fā)生了變化。雖然界面顯示效果也會(huì)發(fā)生一定的變化,但在此處并不算界面結(jié)構(gòu)上的變化。[0042]對于界面結(jié)構(gòu)會(huì)隨著輸入條件發(fā)生變化的需求場景,終端程序在獲得輸入條件之后才能確定終端程序的界面結(jié)構(gòu)。輸入條件不同,終端程序界面結(jié)構(gòu)也就不同。此種在創(chuàng)建界面時(shí)需要根據(jù)輸入條件來確定結(jié)構(gòu)的界面,不論采用哪種界面編寫方式,都屬于動(dòng)態(tài)界面。其實(shí),此種動(dòng)態(tài)界面的實(shí)現(xiàn)不能完全通過安卓標(biāo)簽的方式給出。在為編寫界面而做的工作中,必須要全部或部分用到j(luò)ava代碼。例如,一個(gè)表單界面,表單字段的數(shù)量,表單字段的位置會(huì)隨著輸入條件的不同而發(fā)生變化,這種界面就是動(dòng)態(tài)界面。[0043]本發(fā)明就是為了解決此種對于動(dòng)態(tài)界面的需求而提出的一種解決方案,此方案包括:[0044]1、如何給出和解析創(chuàng)建界面所需要的輸入條件;[0045]2、如何根據(jù)對輸入條件的解析結(jié)果創(chuàng)建界面;[0046]以下就解析xml格式字符串的過程并結(jié)合前述兩種動(dòng)態(tài)生成表單界面的方式進(jìn)行詳細(xì)的舉例說明:[0047]例如:終端應(yīng)用程序接收到如下字符串:[0048]〈TableIableName="月度產(chǎn)品計(jì)戈丨丨表">〈FieldfieldValue="TCL100"filedName=”品牌"/>〈FieldfieldValue="20"filedName="預(yù)計(jì)數(shù)量”/>〈FieldfieldValue="3000"filedName=”預(yù)計(jì)金額"/></Table>[0049]根據(jù)對產(chǎn)生此xml格式字符串的協(xié)議的理解,此xml格式字符串描述了一個(gè)表單。表單名字為“月度產(chǎn)品計(jì)劃表”;[0050]此表單包括三個(gè)表單項(xiàng):[0051]表單項(xiàng)1:品牌TCL100[0052]表單項(xiàng)2:預(yù)計(jì)數(shù)量20[0053]表單項(xiàng)3:預(yù)計(jì)金額3000[0054]采用任何一種xml文檔解析器如D0M/SAX/PULL,可以獲取以上信息。獲取到以上信息后,可以采取以下兩種方式中的一種來裝配安卓程序界面:[0055]I)純java編碼創(chuàng)建界面的方式:[0056]在解析到Table標(biāo)簽時(shí),創(chuàng)建一個(gè)表格體布局,準(zhǔn)備裝入表單項(xiàng):[0057]LinearLayouttableLay=newLinearLayout(this);tableLay.selOrientation(LinearLayout.VERTICAL);tableLay.setLayoutParams(newLinearLayout.LayoutParams(LinearLayout丄ayoutParams.MATCH_PAR.ENT,LinearLayout.LayoutParams.WRAP—CONTENT));[0058]在解析到Field標(biāo)簽時(shí),獲取兩個(gè)標(biāo)簽屬性fieldName、fieldValue的值,倉ll建一個(gè)表單項(xiàng)視圖,將fieldName、fieldValue的值賦予表單項(xiàng)視圖,最后將表單項(xiàng)視圖加入表格布局:[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]【權(quán)利要求】1.一種安卓應(yīng)用程序動(dòng)態(tài)表單的實(shí)現(xiàn)方法,其特征在于,包括:步驟1、終端應(yīng)用程序接收服務(wù)端發(fā)送的xml格式字符串;步驟2、終端應(yīng)用程序根據(jù)與服務(wù)端約定的xml格式協(xié)議解析接收到的字符串;步驟3、終端應(yīng)用程序依據(jù)解析結(jié)果,使用通過java代碼動(dòng)態(tài)創(chuàng)建界面的方式創(chuàng)建表單界面。2.如權(quán)利要求1所述的方法,其特征在于,步驟I中,xml格式字符串由服務(wù)端遵照xml格式表單描述協(xié)議及需要產(chǎn)生的表單信息生成。3.如權(quán)利要求2所述的方法,其特征在于,所述xml格式表單描述協(xié)議約定xml格式文檔中用以描述表單結(jié)構(gòu)的信息:表單結(jié)構(gòu)、標(biāo)簽名、標(biāo)簽屬性、嵌套關(guān)系。4.如權(quán)利要求1所述的方法,其特征在于,步驟2中,終端應(yīng)用程序依照約定的xml格式協(xié)議解析接收到的字符串,得到以下表格的信息:字段名、字段值、字段位置。5.如權(quán)利要求4所述的方法,其特征在于,步驟3中,終端應(yīng)用程序根據(jù)解析得到表格的信息,使用java代碼動(dòng)態(tài)生成表單界面以及為界面組件添加各類事件方法。6.如權(quán)利要求5所述的方法,其特征在于,使用java代碼動(dòng)態(tài)生成表單界面的方式至少包括以下一種:方式1:純java編碼創(chuàng)建界面的方式;方式2:從androidxml布局文件裝載元素組件并由java代碼裝配成一個(gè)完整界面的方式。7.如權(quán)利要求5所述的方法,其特征在于,步驟3中,生成界面的時(shí)機(jī)至少包括以下一種:a、和解析過程混合進(jìn)行,解析完成時(shí)界面繪制工作也立即完成;b、在解析過程中生成界面描述對象,解析完成后再根據(jù)解析過程輸出的界面描述對象來繪制界面?!疚臋n編號】G06F9/44GK103577197SQ201310577139【公開日】2014年2月12日申請日期:2013年11月18日優(yōu)先權(quán)日:2013年11月18日【發(fā)明者】段小亮申請人:深圳市遠(yuǎn)行科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1