亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種實現(xiàn)Android終端動態(tài)表格控件的方法

文檔序號:10655184閱讀:311來源:國知局
一種實現(xiàn)Android終端動態(tài)表格控件的方法【專利摘要】本發(fā)明公開了一種實現(xiàn)Android終端動態(tài)表格控件的方法,利用動態(tài)布局動態(tài)構建UI技術,包括以下具體步驟:步驟1、在Android環(huán)境下,對數(shù)據(jù)庫對象數(shù)據(jù)源訪問的動態(tài)化;步驟2、動態(tài)創(chuàng)建Android環(huán)境下動態(tài)表格控件。通過上述,本發(fā)明提供的實現(xiàn)Android終端動態(tài)表格控件的方法,無需每個業(yè)務模塊針對性編寫數(shù)據(jù)源訪問邏輯和針對性創(chuàng)建布局文件,程序具有很強的復用性,減少業(yè)務功能模塊的開發(fā)成本,提高了開發(fā)效率及系統(tǒng)的穩(wěn)定性,并且提供業(yè)務功能模塊的開發(fā)效率,降低維護難度。【專利說明】一種實現(xiàn)Android終端動態(tài)表格控件的方法
技術領域
[OOO1]本發(fā)明涉及電子信息技術的
技術領域
,涉及Andrοid終端數(shù)據(jù)動態(tài)訪問技術及動態(tài)構建UI技術,特別是涉及一種利用業(yè)務層代碼或非Android系統(tǒng)配置文件創(chuàng)建UI機制構建Android終端動態(tài)表格控件的方法?!?br>背景技術
】[0002]當前移動互聯(lián)網(wǎng)飛速發(fā)展的時代,很多移動互聯(lián)網(wǎng)公司也在APP
技術領域
進行探索.為了滿足用戶移動狀態(tài)下實現(xiàn)統(tǒng)計分析的目的,需要實現(xiàn)一套快速開發(fā)、高效運行的終端動態(tài)表格控件。[0003]在當前通用的Android終端UI構建技術中,動態(tài)表格控件是通過復雜、繁瑣格式的適配文件及根據(jù)不同業(yè)務定制的數(shù)據(jù)源(適配器)來實現(xiàn)的。[0004]主要步驟包括:(1)針對性定義表格標題布局文件;(2)針對性定義表格數(shù)據(jù)/單元格布局文件;(3)針對性構建適配器;(4)針對性構建數(shù)據(jù)源。[0005]實例說明如下:(I)針對性定義表格標題布局文件product_row.xml〈LinearLayout…><TextViewandroid:1d=〃@+id/p—id〃//產(chǎn)品名稱列IDandroid:layout—width=〃wrap—content"http://強制擴展單元格,以顯不全部內容android:layout—height=〃30dp〃/7標題欄高度為30個像素點android:textSize=〃18sp〃//字體大小為18android:singleLine=〃true〃//單行顯不android:elIipsize=〃end〃//省略號在結尾android:layout—marginLeft=〃25dp〃//左側外邊距為25個像素點android:text=〃產(chǎn)品名稱〃/><TextViewandroid:text=,",android:layout—width=〃2dp〃/7間隔線寬度為2個像素點android:layout—height=〃30dp〃/7間隔線高度為30個像素點,和標題內容相同android:textSize=〃20dp〃//字體大小為20個像素點android:layout—marginLeft=〃20dp〃//外邊距為20個像素點android:background="?。。lor/1ightblue〃/>//顏色為亮藍</LinearLayout>說明:該布局文件以線性布局為主,逐個定義各標題內容及間隔線.標題欄中各標題的高度、高度是固化的,標題內容字體及相對位置也是固化的。[0006](2)針對性定義動態(tài)表格數(shù)據(jù)布局文件<?xmlvers1n=,,1.0〃encoding=〃utf_8〃?><ReIativeLayoutandroid:background="@color/bluebg"http://藍色背景android:orientat1n=,,vertical,,//垂直線性布局<HorizontalScroIIView.._>〈LinearLayout〈!一定義各單元格屬性一>〈LinearLayoutandroid:1d=〃@+id/header〃//標題欄IDandroid:layout—width=〃fi11—parent,,//強制擴展android:layout—height=,,wrap_content,,//強制擴展android:orientat1n=〃horizontal〃//水平線性布局android:layout—marginLeft=〃3dp〃//左邊距大小android:layout—marginRight=〃5dp〃//右邊距大小android:layout—marginTop=〃5dp〃>//界面頂部的邊距大小<TextViewandroid:text=〃TextView〃//文本類型的單元格android:1d=〃@+id/tv—p—name"http://對應標題為“產(chǎn)品名稱”的整列單元格android:layout—marginLeft=〃20dp〃android:layout—width=,,wrap_content〃//強制橫向擴展android:layout—height=,,wrap_content〃//強制縱向擴展android:textSize=〃20dp〃/>//字體大小為20個像素點<TextViewandroid:text=,",android:layout—width=〃2dp〃//間隔線寬度android:layout—height=〃30dp〃//間隔線高度android:textSize=〃20dp〃//間隔線實際大小android:layout—marginLeft=〃44dp〃//左側邊距android:background=〃@color/lightblue〃/>//彥員色為亮藍</LinearLayout><!一定義分頁統(tǒng)計行一>〈LinearLayout…><TextViewandroid:1d=〃@+id/totalcount,,//統(tǒng)計行IDandroid:text=,,?string/totalcount,,//統(tǒng)計信息android:gravity=,,center?//居中顯不android:layout—marginLeft=〃5dp〃/>//左邊距</LinearLayout></LinearLayout></HorizontalScrollView></RelativeLayout>(3)單獨構建產(chǎn)品數(shù)據(jù)適配器publicclassProductAdapterextendsBaseAdapter{publicViewgetView(intposit1n,ViewconvertView,ViewGroupparent){ViewHolderholder=null;if(null==convertView){holder=newViewHolderO;//加載適配文件product_row.xmlconvertView=inflater.1nflate(R.layout.product_row,null);holder.tvl=(TextView)convertView.findViewByld(R.1d.rownumberr);holder.tv2=(TextView)convertView.findViewById(R.1d.tv_p—name);holder.tv3=(TextView)convertView.findViewById(R.1d.cdmc);holder.tv4=(TextView)convertView.findViewById(R.1d.zc);holder.tv5=(TextView)convertView.findViewById(R.1d.msjc);convertView.setTag(holder);}else{holder=(ViewHolder)convertView.getTag();}//Product是針對當前數(shù)據(jù)源構建的實體類Productproduct=(Product)list.get(posit1n);holder.tv1.setText(product.getId());holder.tv2.setText(product.getName());holder.tv3.setText(product.getAddress());holder.tv4.setText(product.getSize());returnconvertView;}//定義和顯示列的數(shù)量對應的文本對象classViewHolder{TextViewtvl=null;TextViewtv2=null;TextViewtv3=null;TextViewtv4=null;TextViewtv5=null;}}說明:a)該適配器是針對適配文件構建的;b)適配器中Product類是針對當前數(shù)據(jù)源構建的實體類;不同的業(yè)務需要創(chuàng)建不同的實體類.(4)單獨構建數(shù)據(jù)源publicclassDataSourceimplementsContent{privateProductdata;publicList<Product>getProductList(longoffset,longlimit){Stringsql="selectkcb,cdmc,zc,msjcfrompub_productlimit?,?〃;Cursorcursor=db.rawQuery(sql,newString[]{offset+〃〃,limit+""});List〈KeCheng>list=null;longrownumber=offset+1;if(cs.getCount()>0){cs.moveToFirst();list=newArrayList<User>();while(cs.moveToNext()){kcb=cs.getString(cs.getColumnIndex(〃kcb〃));cdmc=cs.getString(cs.getColumnIndex(〃cdmc〃));zc=cs.getString(cs.getColumnIndex(〃zc〃));msjc=cs.getString(cs.getCoIumnIndex(^msjc〃));data=newProduct(rownumber+〃〃,kcb,cdmc,zc,msjc);list.add(data);rownumber++;}}cs.close();rownumber=0;returnlist;}}以上的構建過程說明,當前通用的UI構建方式,需要遵循Android平臺固有的構建方式,需要將各類適配文件固化到工程中。采用上述方法就存在若干缺點:1.適配文件中所定義的各類界面元素,其屬性配置是固化的,一旦打包部署到安卓相關市場,基本上無法做到靈活調整、靈活控制;?.開發(fā)難度大、成本高,每個UI,均需要針對性開發(fā)對應的適配文件;屬性繁多、各布局嵌套使用時調整工作耗時;需要開發(fā)人員掌握各屬性的含義以及可以靈活運用;ii1.執(zhí)行效率較低。程序需要逐一解析這些手工創(chuàng)建的配置復雜的適配文件,并配合針對性的數(shù)據(jù)源、適配器,才能完成UI顯示;iv.程序不具有復用性?!?br/>發(fā)明內容】[0007]本發(fā)明主要解決的技術問題是提供一種實現(xiàn)Android終端動態(tài)表格控件的方法,無需每個業(yè)務模塊針對性編寫數(shù)據(jù)源訪問邏輯和針對性創(chuàng)建布局文件,程序具有很強的復用性,減少業(yè)務功能模塊的開發(fā)成本,提高了開發(fā)效率及系統(tǒng)的穩(wěn)定性,并且提供業(yè)務功能模塊的開發(fā)效率,降低維護難度。[0008]為解決上述技術問題,本發(fā)明采用的一個技術方案是:提供了一種實現(xiàn)Android終端動態(tài)表格控件的方法,利用動態(tài)布局動態(tài)構建UI技術,包括以下具體步驟:步驟1、在Android環(huán)境下,對數(shù)據(jù)庫對象數(shù)據(jù)源訪問的動態(tài)化其中,數(shù)據(jù)源訪問的動態(tài)化,體現(xiàn)在如下兩個方面:(1.1)在實現(xiàn)業(yè)務功能時,傳入表名或視圖名、字段名稱、查詢條件,系統(tǒng)自動提取數(shù)據(jù),返回數(shù)據(jù)集;(1.2)在實現(xiàn)業(yè)務功能或系統(tǒng)初始化服務中,同步服務器端的XML、JS0N配置文件,根據(jù)配置文件中指定的表名或視圖名、字段名稱、查詢條件,自動提取數(shù)據(jù),返回數(shù)據(jù)集;步驟2、動態(tài)創(chuàng)建Android環(huán)境下動態(tài)表格控件其中,動態(tài)表格控件創(chuàng)建的動態(tài)化,體現(xiàn)在如下兩個方面:(2.1)在業(yè)務類中,傳入標題名稱、順序、列初始寬度等參數(shù),系統(tǒng)會自動關聯(lián)動態(tài)數(shù)據(jù)源所返回的數(shù)據(jù)集,構建動態(tài)表格界面;(2.2)在業(yè)務類或系統(tǒng)初始化服務中,同步服務器端的XML配置文件,根據(jù)配置文件中指定的標題名稱、順序、列初始寬度等參數(shù),系統(tǒng)會自動關聯(lián)動態(tài)數(shù)據(jù)源所返回的數(shù)據(jù)集,構建動態(tài)表格界面。[0009]本發(fā)明的有益效果是:本發(fā)明的實現(xiàn)Android終端動態(tài)表格控件的方法,無需每個業(yè)務模塊針對性編寫數(shù)據(jù)源訪問邏輯和針對性創(chuàng)建布局文件,程序具有很強的復用性,減少業(yè)務功能模塊的開發(fā)成本,提高了開發(fā)效率及系統(tǒng)的穩(wěn)定性,并且提供業(yè)務功能模塊的開發(fā)效率,降低維護難度。【具體實施方式】[0010]下面將對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。[0011]本發(fā)明實施例包括:一種實現(xiàn)Android終端動態(tài)表格控件的方法,利用動態(tài)布局動態(tài)構建UI技術,包括以下具體步驟:步驟1、在Android環(huán)境下,對數(shù)據(jù)庫對象數(shù)據(jù)源訪問的動態(tài)化其中,數(shù)據(jù)源訪問的動態(tài)化,體現(xiàn)在如下兩個方面:(1.1)在實現(xiàn)業(yè)務功能時,傳入表名或視圖名、字段名稱、查詢條件,系統(tǒng)自動提取數(shù)據(jù),返回數(shù)據(jù)集;(1.2)在實現(xiàn)業(yè)務功能或系統(tǒng)初始化服務中,同步服務器端的XML、JS0N配置文件,根據(jù)配置文件中指定的表名或視圖名、字段名稱、查詢條件,自動提取數(shù)據(jù),返回數(shù)據(jù)集;步驟2、動態(tài)創(chuàng)建Android環(huán)境下動態(tài)表格控件其中,動態(tài)表格控件創(chuàng)建的動態(tài)化,體現(xiàn)在如下兩個方面:(2.1)在業(yè)務類中,傳入標題名稱、順序、列初始寬度等參數(shù),系統(tǒng)會自動關聯(lián)動態(tài)數(shù)據(jù)源所返回的數(shù)據(jù)集,構建動態(tài)表格界面;(2.2)在業(yè)務類或系統(tǒng)初始化服務中,同步服務器端的XML配置文件,根據(jù)配置文件中指定的標題名稱、順序、列初始寬度等參數(shù),系統(tǒng)會自動關聯(lián)動態(tài)數(shù)據(jù)源所返回的數(shù)據(jù)集,構建動態(tài)表格界面。[0012]實施例:本發(fā)明利用動態(tài)創(chuàng)建控件的方式,快速實現(xiàn)Android終端的動態(tài)表格查詢功能??梢酝ㄟ^如下兩種方式實現(xiàn):1、在業(yè)務類(具體的業(yè)務窗口類)中的OnCreate初始化函數(shù)中,將表格各類屬性、數(shù)據(jù)源(包括表名、字段名)等信息,傳遞自封裝的適配器,該適配器會自動創(chuàng)建我們所需用的動態(tài)表格(表格).//設置數(shù)據(jù)庫表中的字段名稱(實體屬性名稱)列表Stringcolumns="KCB,CDMC,ZC,SKJC";//設置表格的標題,和字段名稱列表中的字段名對應String[]colTitleName={〃產(chǎn)品名稱〃,〃產(chǎn)品價格〃,〃產(chǎn)品種類〃,〃產(chǎn)品數(shù)量〃};/*列表顯示時的個單元格的寬度,可以不設置,系統(tǒng)自動使用默認的.和字段名稱列表中的字段名對應*/int[]coIumnsWidth={60,400,450,150,100};//數(shù)據(jù)庫對象名稱,可以是表名或視圖名稱StringtabIeName=〃pub_product〃;//是否在表格中顯示復選框true代表顯示false代表不顯示hasCheckBox=true;this.setHasCheckBox(hasCheckBox);//設置適配器DataAbsAdapterbaseAdapter=newDataAbsAdapter(this,columns,columnsffidth,hasCheckBox);this.setBaseAdapter(baseAdapter);2、提供工程之外的資源文件,系統(tǒng)根據(jù)既定的資源文件構建U1.即可根據(jù)服務器端提供的xml文件,程序動態(tài)構建所需要的動態(tài)表格界面:<?xmlvers1n=,,1.0〃encoding=〃utf_8〃?>〈tablename=”pub—product,,ischeck=”l,,><kcbname=”產(chǎn)品名稱”datatype=”string”width=,,60”></kcb><cdmcname=”產(chǎn)品價格”datatype=”string”width=”400”></cdmc><zcname=”產(chǎn)品種類”datatype=”int”width=”450”></zc><skjcname=”產(chǎn)品數(shù)量”datatype=”int”width=”150”></skjc>〈/table〉說明:(l)table標簽中的name屬性指明表格的數(shù)據(jù)源,可用是表名或視圖名稱,ischeck屬性值為I時,代表創(chuàng)建復選框,ischeck屬性值為O時,代表不創(chuàng)建復選框;(2)table標簽下的每個子標簽名稱,對應數(shù)據(jù)源中的字段名稱;(3)table標簽下的每個子標簽的name屬性代表表格中的標題名稱;(4)table標簽下的每個子標簽的datatype屬性代表數(shù)據(jù)源中當前字段的數(shù)據(jù)類型;(5)table標簽下的每個子標簽的width屬性代表表格中當前單元格所占用的寬度。[0013]1、數(shù)據(jù)源訪問動態(tài)化的優(yōu)點:(1)無需每個業(yè)務模塊針對性編寫數(shù)據(jù)源訪問邏輯;(2)將數(shù)據(jù)庫的訪問邏輯交給系統(tǒng)中自封裝的數(shù)據(jù)庫管理組件;(3)程序具有很強的復用性,減少業(yè)務功能模塊的開發(fā)成本,提高了開發(fā)效率及系統(tǒng)的穩(wěn)定性。[0014]2、動態(tài)創(chuàng)建動態(tài)表格控件創(chuàng)建的優(yōu)點:(1)無需每個業(yè)務模塊針對性創(chuàng)建布局文件;(2)無需針對每個業(yè)務模塊針對性編寫適配器;(3)無需關心動態(tài)表格中每個單元格的位置、大小,該動態(tài)表格控件會自動計算,自動適配不同分辨率、不同屏幕大小的手機環(huán)境;(4)無需單獨創(chuàng)建、控制分頁統(tǒng)計操作;(5)程序具有很強的復用性,提供業(yè)務功能模塊的開發(fā)效率,降低維護難度。[00?5]綜上所述,本發(fā)明的實現(xiàn)Andrοid終端動態(tài)表格控件的方法,無需每個業(yè)務模塊針對性編寫數(shù)據(jù)源訪問邏輯和針對性創(chuàng)建布局文件,程序具有很強的復用性,減少業(yè)務功能模塊的開發(fā)成本,提高了開發(fā)效率及系統(tǒng)的穩(wěn)定性,并且提供業(yè)務功能模塊的開發(fā)效率,降低維護難度。[0016]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書內容所作的等效結構或等效流程變換,或直接或間接運用在其它相關的
技術領域
,均同理包括在本發(fā)明的專利保護范圍內?!局鳈囗棥?.一種實現(xiàn)Android終端動態(tài)表格控件的方法,利用動態(tài)布局動態(tài)構建UI技術,其特征在于,包括以下具體步驟:步驟1、在Android環(huán)境下,對數(shù)據(jù)庫對象數(shù)據(jù)源訪問的動態(tài)化其中,數(shù)據(jù)源訪問的動態(tài)化,體現(xiàn)在如下兩個方面:(1.1)在實現(xiàn)業(yè)務功能時,傳入表名或視圖名、字段名稱、查詢條件,系統(tǒng)自動提取數(shù)據(jù),返回數(shù)據(jù)集;(1.2)在實現(xiàn)業(yè)務功能或系統(tǒng)初始化服務中,同步服務器端的XML、JS0N配置文件,根據(jù)配置文件中指定的表名或視圖名、字段名稱、查詢條件,自動提取數(shù)據(jù),返回數(shù)據(jù)集;步驟2、動態(tài)創(chuàng)建Android環(huán)境下動態(tài)表格控件其中,動態(tài)表格控件創(chuàng)建的動態(tài)化,體現(xiàn)在如下兩個方面:(2.1)在業(yè)務類中,傳入標題名稱、順序、列初始寬度等參數(shù),系統(tǒng)會自動關聯(lián)動態(tài)數(shù)據(jù)源所返回的數(shù)據(jù)集,構建動態(tài)表格界面;(2.2)在業(yè)務類或系統(tǒng)初始化服務中,同步服務器端的XML配置文件,根據(jù)配置文件中指定的標題名稱、順序、列初始寬度等參數(shù),系統(tǒng)會自動關聯(lián)動態(tài)數(shù)據(jù)源所返回的數(shù)據(jù)集,構建動態(tài)表格界面。【文檔編號】G06F9/44GK106021340SQ201610301307【公開日】2016年10月12日【申請日】2016年5月9日【發(fā)明人】王超【申請人】統(tǒng)通信(蘇州)有限公司,統(tǒng)一通信(蘇州)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1