本發(fā)明涉及安卓(Android)系統(tǒng)數(shù)據(jù)整合技術,尤其涉及一種基于安卓系統(tǒng)的分區(qū)域顯示方法、裝置及電子設備。
背景技術:
:隨著移動設備的不斷普及,安卓系統(tǒng)應用幾乎無處不在,已涉及到各個領域。對于用戶來說,除了看重移動設備的功能外,其屏幕的圖形界面也是最關注的對象。沒有提供友好的圖形界面的移動設備,將很難吸引最終的用戶;相反,擁有一個友好的圖形界面,用戶可以輕松地通過手指去點擊各種事件來操作相應的應用程序。就像windows系統(tǒng)一樣,最初能很快吸引大量用戶,就是因為它有豐富的圖形界面,最終幾乎獨占整個市場??上攵?,友好的圖形界面是多么的重要。安卓系統(tǒng)的圖形界面主要由表示各種事件或應用程序的視圖組成。ListView是安卓系統(tǒng)中使用非常廣泛的一種視圖組件,它以垂直列表的形式顯示所有列表項,比如,在顯示聯(lián)系人名單、系統(tǒng)設置項等。人們?yōu)榱烁奖愕厥褂靡晥D列表,經常需要分組顯示列表項中的視圖,將不同的數(shù)據(jù)項顯示在不同的區(qū)域。視圖分組顯示不但要在布局上考慮多個條目的設計,還要在代碼實現(xiàn)上整合數(shù)據(jù)結構進行拼湊封裝,以達到分區(qū)域不同數(shù)據(jù)顯示的目的。由上述可見,現(xiàn)有的視圖分組顯示方法存在的問題是:分區(qū)域顯示不同數(shù)據(jù)的方法需要考慮的因素較多,實現(xiàn)起來比較麻煩。技術實現(xiàn)要素:有鑒于此,本發(fā)明實施例提供一種基于安卓系統(tǒng)的分區(qū)域顯示方法、裝置及電子設備,能夠方便、快速地實現(xiàn)不同數(shù)據(jù)源的分區(qū)域顯示。第一方面,本發(fā)明實施例提供一種基于安卓系統(tǒng)的分區(qū)域顯示方法,包括:構造第一對象;獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;構造第二對象;獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中;對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并;對所述垂直合并后得到的結果進行顯示。結合第一方面,在第一方面的第一種實施方式中,所述構造第一對象包括:通過安卓系統(tǒng)提供的MatrixCursor構造第一對象;所述構造第二對象包括:通過安卓系統(tǒng)提供的MatrixCursor構造第二對象。結合第一方面,在第一方面的第二種實施方式中,所述獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,包括:通過安卓系統(tǒng)提供的游標接口獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源;所述獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,包括:通過安卓系統(tǒng)提供的游標接口獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源。結合第一方面,在第一方面的第三種實施方式中,所述對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并,包括:構造包括所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源的游標數(shù)組;通過安卓系統(tǒng)提供的MergeCursor對所述游標數(shù)組中的第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源進行垂直合并。結合第一方面及第一方面的第一種~第三種實施方式中的任意一種實施方式,在第一方面的第四種實施方式中,在所述獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中之后,在所述對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并之前,所述方法還包括:向待顯示數(shù)據(jù)源的頭部插入新數(shù)據(jù)源。結合第一方面,在第一方面的第五種實施方式中,所述向待顯示數(shù)據(jù)源的頭部插入新數(shù)據(jù)源,包括:構造與所述新數(shù)據(jù)源的數(shù)據(jù)類型相同的占位數(shù)據(jù);將所述占位數(shù)據(jù)添加到存放待插入新數(shù)據(jù)源的待顯示數(shù)據(jù)源的對象中,并置于所述待顯示數(shù)據(jù)源的頭部,由所述新數(shù)據(jù)源填充所述占位數(shù)據(jù)。第二方面,本發(fā)明實施例提供一種基于安卓系統(tǒng)的分區(qū)域顯示裝置,包括:第一構造模塊,用于構造第一對象;第一獲取模塊,用于獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;第二構造模塊,用于構造第二對象;第二獲取模塊,用于獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中;垂直合并模塊,用于對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并;顯示模塊,用于對所述垂直合并后得到的結果進行顯示。結合第二方面,在第二方面的第一種實施方式中,所述第一構造模塊,具體用于通過安卓系統(tǒng)提供的MatrixCursor構造第一對象;所述第二構造模塊,具體用于通過安卓系統(tǒng)提供的MatrixCursor構造第二對象。結合第二方面,在第二方面的第二種實施方式中,所述第一獲取模塊,具體用于通過安卓系統(tǒng)提供的游標接口獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源;所述第二獲取模塊,具體用于通過安卓系統(tǒng)提供的游標接口獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源。結合第二方面,在第二方面的第三種實施方式中,所述垂直合并模塊包括:構造數(shù)組子模塊,用于構造包括所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源的游標數(shù)組;合并子模塊,用于通過安卓系統(tǒng)提供的MergeCursor對所述游標數(shù)組中的第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源進行垂直合并。結合第二方面及第二方面的第一種~第三種實施方式中的任意一種實施方式,在第二方面的第四種實施方式中,所述裝置還包括:插入新數(shù)據(jù)源模塊,用于向待顯示數(shù)據(jù)源的頭部插入新數(shù)據(jù)源。結合第二方面,在第二方面的第五種實施方式中,所述插入新數(shù)據(jù)源模塊包括:構造占位數(shù)據(jù)子模塊,用于構造與所述新數(shù)據(jù)源的數(shù)據(jù)類型相同的占位數(shù)據(jù);添加及填充子模塊,用于將所述占位數(shù)據(jù)添加到存放待插入新數(shù)據(jù)源的待顯示數(shù)據(jù)源的對象中,并置于所述待顯示數(shù)據(jù)源的頭部,由所述新數(shù)據(jù)源填充所述占位數(shù)據(jù)。第三方面,本發(fā)明實施例提供一種電子設備,所述電子設備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置在電路板上;電源電路,用于為上述電子設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行以下步驟:構造第一對象;獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;構造第二對象;獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中;對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并;對所述垂直合并后得到的結果進行顯示。第四方面,本發(fā)明實施例還提供了一種存儲介質,用于存儲應用程序,所述應用程序用于執(zhí)行本發(fā)明實施例所提供的一種基于安卓系統(tǒng)的分區(qū)域顯示方法。第五方面,本發(fā)明實施例還提供了一種應用程序,用于執(zhí)行本發(fā)明實施例所提供的一種基于安卓系統(tǒng)的分區(qū)域顯示方法。本發(fā)明實施例提供的一種基于安卓系統(tǒng)的分區(qū)域顯示方法、裝置及電子設備,通過構造第一對象,獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中,構造第二對象,獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中,對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并,對所述垂直合并后得到的結果進行顯示,能夠方便、快速地實現(xiàn)不同數(shù)據(jù)源的分區(qū)域顯示。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明的實施例基于安卓系統(tǒng)的分區(qū)域顯示方法的流程圖;圖2為應用本發(fā)明所述方法將特別關注和WhatsCall好友分組顯示,并將“邀請好友”插入WhatsCall好友列表中的示意圖;圖3為本發(fā)明的實施例基于安卓系統(tǒng)的分區(qū)域顯示不同數(shù)據(jù)的裝置的方框圖;圖4為本發(fā)明電子設備一個實施例的結構示意圖。具體實施方式下面結合附圖對本發(fā)明實施例進行詳細描述。應當明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明的實施例基于安卓系統(tǒng)的分區(qū)域顯示不同數(shù)據(jù)的方法的流程圖,如圖1所示,本實施例的方法可以包括:步驟101、構造第一對象;步驟102、獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;步驟103、構造第二對象;步驟104、獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中;步驟105、對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并;步驟106、對所述垂直合并后得到的結果進行顯示。本實施例中,步驟101構造第一對象,步驟103構造第二對象。所述第一對象和第二對象用于分別存放步驟102和步驟104中的第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源。Java構造對象有4種方法,分別是:用new語句創(chuàng)建對象;運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法;調用對象的clone()方法;運用反序列化手段,調用java.io.ObjectInputStream對象的readObject()方法。用new語句創(chuàng)建對象是構造對象最常見的方法。值得說明的是,從字面上看,步驟101和步驟103只是構造了第一對象和第二對象,但并不限于第一、第二兩個對象,實際上是為不少于兩個待顯示數(shù)據(jù)源的每一個待顯示數(shù)據(jù)源分別構造一個用于存放該待顯示數(shù)據(jù)源的對象。同理,后面涉及的第一、第二對象或待顯示數(shù)據(jù)源的表述中也均不限于第一、第二兩個對象或待顯示數(shù)據(jù)源。簡便起見,不再分別進行說明。本實施例中,步驟102獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;步驟104獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中。Java中的對象是一種具體的客觀存在,比如一臺電視機、一個業(yè)務員等。對象對應著內存中表示對象屬性的一片數(shù)據(jù),比如電視機的尺寸、重量等,業(yè)務員的姓名、年齡等。步驟102和步驟104實際上是從數(shù)據(jù)存儲區(qū)取出待顯示的數(shù)據(jù)源,然后分別存入對應的對象中。值得說明的是,步驟101~步驟104的執(zhí)行不一定嚴格按照步驟序號從小到大的順序依次進行,只要步驟101先于步驟102,步驟103先于步驟104即可。本實施例中,步驟105對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并。在安卓系統(tǒng)中,數(shù)據(jù)源的合并包括水平合并和垂直合并。水平合并是將待合并的數(shù)據(jù)源按列合并,安卓系統(tǒng)提供的類CursorJoiner就可以實現(xiàn)水平合并,合并后一個數(shù)據(jù)源的第一列位于前面一個數(shù)據(jù)源的最后一列的后面。本實施例是對待顯示數(shù)據(jù)源進行垂直合并。垂直合并是按行合并,合并后一個數(shù)據(jù)源的第一行位于前面一個數(shù)據(jù)源的最后一行的后面。本實施例中,步驟106對所述垂直合并后得到的結果進行顯示。由于垂直合并是按行合并,因此,對所述垂直合并后得到的結果進行顯示后,不同的待顯示數(shù)據(jù)源按從上到下的順序顯示在不同的區(qū)域。實現(xiàn)了不同數(shù)據(jù)源的分區(qū)域顯示。作為一可選實施例,所述構造第一對象包括:通過安卓系統(tǒng)提供的MatrixCursor構造第一對象;所述構造第二對象包括:通過安卓系統(tǒng)提供的MatrixCursor構造第二對象。本實施例給出了一種構造第一對象和的第二對象方法。安卓系統(tǒng)提供了一種游標Cursor接口,每次查詢的結果都保存在Cursor中,可以通過遍歷Cursor得到當前查詢到的所有信息。因為Cursor只是一個接口,不是一個具體的類,因此需要采用安卓系統(tǒng)提供的與Cursor接口相關的類MatrixCursor構造對象。下面是由MatrixCursor構造對象normalCursor的程序代碼:MatrixCursornormalCursor=newMatrixCursor(columnName)作為一可選實施例,所述獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,包括:通過安卓系統(tǒng)提供的游標Cursor接口獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源;所述獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,包括:通過安卓系統(tǒng)提供的游標Cursor接口獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源。在本實施例中,通過安卓系統(tǒng)提供的游標Cursor接口獲取待顯示數(shù)據(jù)源。所謂接口可以看作是沒有實現(xiàn)的方法和常量的集合。接口與抽象類相似,接口中的方法只是做了聲明,而沒有定義任何具體的操作方法。使用接口是為了解決Java語言中不支持多重繼承的問題。Java已經創(chuàng)建了許多系統(tǒng)接口,如MouseListener和MouseMotionListener接口,定義了處理鼠標事件的方法,當一個類實現(xiàn)這兩個接口后,就可以處理這些鼠標事件。Cursor是一個游標接口,每次查詢的結果都保存在Cursor中,可以通過遍歷Cursor得到當前查詢到的所有信息。幾個常用的Cursor的方法列舉如下:move(intoffset):將Curor的游標移動到指定ID;getCount():得到Cursor總記錄條數(shù);getInt(intcolumnIndex):根據(jù)列名稱獲得列索引ID;isFirst():判斷當前游標是否為第一條記錄。下面是利用Cursor獲取數(shù)據(jù)的一段程序代碼:intnameColumnIndex=cur.getColumnIndex(People.NAME);tringname=cur.getString(nameColumnIndex);while(cur.moveToNext()){Stringemail=cursor.getString(cursor.getColumnIndex(RuiXin.EMAIL));startManagingCursor(cursor);}當cur.moveToNext()為假時跳出循環(huán),即Cursor數(shù)據(jù)循環(huán)完畢。作為一可選實施例,所述對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并,包括:構造包括所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源的游標數(shù)組;通過安卓系統(tǒng)提供的MergeCursor對所述游標數(shù)組中的第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源進行垂直合并。在本實施例中,首先將待顯示的數(shù)據(jù)源組成一個游標cursors數(shù)組,然后通過安卓系統(tǒng)提供的類MergeCursor對所述游標cursors數(shù)組中的第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源進行垂直合并。將存放待顯示數(shù)據(jù)源的對象置入一個大括號中就得到由這些數(shù)據(jù)源組成的數(shù)組。下面是將對象starCursor、whatscallCursor和normalCursor存放的數(shù)據(jù)組成一個cursors數(shù)組的程序代碼:Cursor[]cursors={starCursor,whatscallCursor,normalCursor}MergeCursor也是安卓系統(tǒng)提供的一個類。MergeCursor與CursorJoiner類似,都可以對數(shù)組進行合并,二者不同的是,CursorJoiner實現(xiàn)水平合并,而MergeCursor實現(xiàn)垂直合并。采用MergeCursor合并數(shù)據(jù),待合并數(shù)據(jù)的列名和列數(shù)都不需要相同,只是簡單地將一個數(shù)據(jù)按行直接添加到另一個數(shù)據(jù)的后面,不必比較列名進行匹配添加。下面給出采用MergeCursor合并數(shù)據(jù)的一個例子。表1和表2分別是待合并的兩個數(shù)據(jù),即數(shù)據(jù)1和數(shù)據(jù)2,表3是這兩個數(shù)據(jù)合并后的結果數(shù)據(jù)3。表1數(shù)據(jù)1序號姓名職稱1王力軍工程師2李莉教授表2數(shù)據(jù)2姓名序號張雪嬌3馬千里4表3數(shù)據(jù)3序號姓名職稱1王力軍工程師2李莉教授張雪嬌3馬千里4作為一可選實施例,在所述獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中之后,在所述對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并之前,所述方法還包括:向待顯示數(shù)據(jù)源的頭部插入新數(shù)據(jù)源。本實施例是前述分區(qū)域顯示實施例技術方案的一種改進方案,向待顯示數(shù)據(jù)源中一個或多個待顯示數(shù)據(jù)源的頭部插入一個新數(shù)據(jù)源,插入的新數(shù)據(jù)源與所述一個或多個待顯示數(shù)據(jù)源顯示在同一區(qū)域且位于所述區(qū)域的前端。作為一可選實施例,所述向待顯示數(shù)據(jù)源的頭部插入新數(shù)據(jù)源,包括:構造與所述新數(shù)據(jù)源的數(shù)據(jù)類型相同的占位數(shù)據(jù);將所述占位數(shù)據(jù)添加到存放待插入新數(shù)據(jù)源的待顯示數(shù)據(jù)源的對象中,并置于所述待顯示數(shù)據(jù)源的頭部,由所述新數(shù)據(jù)源填充所述占位數(shù)據(jù)。本實施例給出了如何向待顯示數(shù)據(jù)源的頭部插入一個新數(shù)據(jù)源的方法。首先構造一個與所述新數(shù)據(jù)源的數(shù)據(jù)類型相同的占位數(shù)據(jù)。然后將所述占位數(shù)據(jù)添加到存放待插入新數(shù)據(jù)源的待顯示數(shù)據(jù)源的對象中,并置于所述待顯示數(shù)據(jù)源的頭部,用所述新數(shù)據(jù)源來填充所述占位數(shù)據(jù)。下面是向一個待顯示數(shù)據(jù)源的頭部插入一新數(shù)據(jù)源的主要程序代碼:Object[]recommendSection={0,0,0,″″,″″,″″,0,SECTION_RECOMMEND,″″,″″,″″,″″,″″,0,0,0,0,0,0,0};whatsCallCursor.addRow(recommendSection);上述程序中構造的占位數(shù)據(jù)recommendSection一共有20項,第一項到第二十項對應數(shù)據(jù)類型,與后面的函數(shù)addRow()一一對應,構成插入新數(shù)據(jù)源的占位符。由whatsCallCursor.addRow(recommendSection)把這一項占位數(shù)據(jù)置于whatscallCursor數(shù)據(jù)源的頭部,并用所述新數(shù)據(jù)源填充所述占位數(shù)據(jù)。函數(shù)whatsCallCursor.addRow()將在后面給出。下面給出本發(fā)明的具體實施例:將通訊錄中的“WhatsCall好友”數(shù)據(jù)源和“特別關注”數(shù)據(jù)源顯示在不同區(qū)域,并在“WhatsCall好友”數(shù)據(jù)源的頭部插入“邀請好友”條目。包括以下步驟:S1、通過安卓系統(tǒng)提供的MatrixCursor構造存放“WhatsCall好友”數(shù)據(jù)源和“特別關注”數(shù)據(jù)源的對象starCursor和whatscallCursor。主要程序代碼如下:MatrixCursorstarCursor=newMatrixCursor(columnName);MatrixCursorwhatscallCursor=newMatrixCursor(columnName);S2、通過安卓系統(tǒng)提供的Cursor接口分別獲取“WhatsCall好友”數(shù)據(jù)源和“特別關注”數(shù)據(jù)源,并分別存入對象starCursor和whatsCallCursor中。主要程序代碼如下:findWhatsCallFriendRow(whatscallCursor,cursor,recommondContactIds);findStarFriendRow(starCursor,cursor,recommondContactIds);S3、構造用一個占位數(shù)據(jù),把所述占位數(shù)據(jù)添加到whatsCallCursor對象中,并置于“WhatsCall好友”數(shù)據(jù)源頭部,用“邀請好友”條目填充所述占位數(shù)據(jù)。主要程序代碼如下:addRow()是安卓系統(tǒng)提供的一個函數(shù),在上述程度代碼中,函數(shù)addRow()用于從本地SQLite數(shù)據(jù)庫中提取滿足條件的通訊錄數(shù)據(jù),并填充在objCursor中返回給上層調用者。昵稱、頭像等信息就包含在其中。S4、以starCursor和whatsCallCursor為參數(shù)構造Cursor數(shù)組:主要程序代碼如下:Cursor[]cursors={starCursor,whatsCallCursor}S5、通過MergeCursor合并Cursor數(shù)組中的starCursor和whatsCallCursor。主要程序代碼如下:MergeCursortotle=newMergeCursor(cursors)顯示合并后的結果如圖2所示。由圖2可以看出,“特別關注”數(shù)據(jù)源顯示在和“WhatsCall好友”數(shù)據(jù)源的上面,而且“邀請好友”條目顯示在“WhatsCall好友”數(shù)據(jù)源的頭部。由上述可見,本實施例基于安卓系統(tǒng)的分區(qū)域顯示不同數(shù)據(jù)的方法,通過構造第一對象,獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中,構造第二對象,獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中,對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并,對所述垂直合并后得到的結果進行顯示,能夠方便、快速地實現(xiàn)不同數(shù)據(jù)源的分區(qū)域顯示。圖3為本發(fā)明實施例基于安卓系統(tǒng)的分區(qū)域顯示不同數(shù)據(jù)的裝置,如圖3所示,本實施例的裝置可以包括:第一構造模塊11,用于構造第一對象;第一獲取模塊12,用于獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;第二構造模塊13,用于構造第二對象;第二獲取模塊14,用于獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中;垂直合并模塊15,用于對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并;顯示模塊16,用于對所述垂直合并后得到的結果進行顯示。在本實施例中,第一構造模塊11構造第一對象;第二構造模塊13構造第二對象。所述第一對象和第二對象用于分別存放第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源。Java構造對象有4種方法,分別是:用new語句創(chuàng)建對象;運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法;調用對象的clone()方法;運用反序列化手段,調用java.io.ObjectInputStream對象的readObject()方法。用new語句創(chuàng)建對象是構造對象最常見的方法。在本實施例中,第一獲取模塊12獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;第二獲取模塊14獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中。Java中的對象是一種具體的客觀存在,比如一臺電視機、一個業(yè)務員等。對象對應著內存中表示對象屬性的一片數(shù)據(jù),比如電視機的尺寸、重量等,業(yè)務員的姓名、年齡等。第一獲取模塊12和第二獲取模塊14實際上是從數(shù)據(jù)存儲區(qū)取出待顯示的數(shù)據(jù)源,然后分別存入對應的對象中。在本實施例中,垂直合并模塊15對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并。在安卓系統(tǒng)中,數(shù)據(jù)源的合并包括水平合并和垂直合并。水平合并是將待合并的數(shù)據(jù)源按列合并,安卓系統(tǒng)提供的類CursorJoiner就可以實現(xiàn)水平合并,合并后一個數(shù)據(jù)源的第一列位于前面一個數(shù)據(jù)源的最后一列的后面。本實施例是對待顯示數(shù)據(jù)源進行垂直合并。垂直合并是按行合并,合并后一個數(shù)據(jù)源的第一行位于前面一個數(shù)據(jù)源的最后一行的后面。本實施例中,顯示模塊16對所述垂直合并后得到的結果進行顯示。由于垂直合并是按行合并,因此,對所述垂直合并后得到的結果進行顯示后,不同的待顯示數(shù)據(jù)源按從上到下的順序顯示在不同的區(qū)域。實現(xiàn)了不同數(shù)據(jù)源的分區(qū)域顯示。作為一可選實施例,所述第一構造模塊,具體用于通過安卓系統(tǒng)提供的MatrixCursor構造第一對象;所述第二構造模塊,具體用于通過安卓系統(tǒng)提供的MatrixCursor構造第二對象。本實施例給出了一種構造第一對象和第二對象的方法。安卓系統(tǒng)提供了一種游標Cursor接口,每次查詢的結果都保存在Cursor中,可以通過遍歷Cursor得到當前查詢到的所有信息。因為Cursor只是一個接口,不是一個具體的類,因此需要采用安卓系統(tǒng)提供的與Cursor接口相關的類MatrixCursor構造對象。下面是由MatrixCursor構造對象normalCursor的程序代碼:MatrixCursornormalCursor=newMatrixCursor(columnName)作為一可選實施例,所述第一獲取模塊,具體用于通過安卓系統(tǒng)提供的游標接口獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源;所述第二獲取模塊,具體用于通過安卓系統(tǒng)提供的游標接口獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源。在本實施例中,通過安卓系統(tǒng)提供的游標Cursor接口獲取待顯示數(shù)據(jù)源。所謂接口可以看作是沒有實現(xiàn)的方法和常量的集合。接口與抽象類相似,接口中的方法只是做了聲明,而沒有定義任何具體的操作方法。使用接口是為了解決Java語言中不支持多重繼承的問題。Java已經創(chuàng)建了許多系統(tǒng)接口,如MouseListener和MouseMotionListener接口,定義了處理鼠標事件的方法,當一個類實現(xiàn)這兩個接口后,就可以處理這些鼠標事件。Cursor是一個游標接口,用于保存查詢結果,可以通過遍歷Cursor得到當前查詢到的所有信息。幾個常用的Cursor的方法列舉如下:move(intoffset):將Curor的游標移動到指定ID;getCount():得到Cursor總記錄條數(shù);getInt(intcolumnIndex):根據(jù)列名稱獲得列索引ID;isFirst():判斷當前游標是否為第一條記錄。下面是利用Cursor獲取數(shù)據(jù)的一段程序代碼:intnameColumnIndex=cur.getColumnIndex(People.NAME);tringname=cur.getString(nameColumnIndex);while(cur.moveToNext()){Stringemail=cursor.getString(cursor.getColumnIndex(RuiXin.EMAIL));startManagingCursor(cursor);}當cur.moveToNext()為假時跳出循環(huán),即Cursor數(shù)據(jù)循環(huán)完畢。作為一可選實施例,所述垂直合并模塊15包括:構造數(shù)組子模塊,用于構造包括所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源的游標數(shù)組;合并子模塊,用于通過安卓系統(tǒng)提供的MergeCursor對所述游標數(shù)組中的第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源進行垂直合并。在本實施例中,所述垂直合并模塊15將待顯示的數(shù)據(jù)源組成一個游標cursors數(shù)組,然后通過安卓系統(tǒng)提供的類MergeCursor對所述游標cursors數(shù)組中的第一待顯示數(shù)據(jù)源和第二待顯示數(shù)據(jù)源進行垂直合并。將存放待顯示數(shù)據(jù)源的對象置入一個大括號中就得到由這些數(shù)據(jù)源組成的數(shù)組。下面是將對象starCursor、whatscallCursor和normalCursor存放的數(shù)據(jù)組成一個cursors數(shù)組的程序代碼:Cursor[]cursors={starCursor,whatscallCursor,normalCursor}MergeCursor也是安卓系統(tǒng)提供的一個類。MergeCursor與CursorJoiner類似,都可以對數(shù)組進行合并,二者不同的是,CursorJoin實現(xiàn)水平合并,而MergeCursor實現(xiàn)垂直合并。采用MergeCursor合并數(shù)據(jù),待合并數(shù)據(jù)的列名和列數(shù)都不需要相同,只是簡單地將一個數(shù)據(jù)按行直接添加到另一個數(shù)據(jù)的后面,不必比較列名進行匹配添加。作為一可選實施例,所述裝置還包括:插入新數(shù)據(jù)源模塊,用于向待顯示數(shù)據(jù)源的頭部插入新數(shù)據(jù)源。在本實施例中,所述插入新數(shù)據(jù)源模塊,向待顯示數(shù)據(jù)源中的一個或多個待顯示數(shù)據(jù)源的頭部插入一個新數(shù)據(jù)源,插入的新數(shù)據(jù)源與所述一個或多個待顯示數(shù)據(jù)源顯示在同一區(qū)域且位于所述區(qū)域的前端。作為一可選實施例,所述插入新數(shù)據(jù)源模塊包括:構造占位數(shù)據(jù)子模塊,用于構造與所述新數(shù)據(jù)源的數(shù)據(jù)類型相同的占位數(shù)據(jù);添加及填充子模塊,用于將所述占位數(shù)據(jù)添加到存放待插入新數(shù)據(jù)源的待顯示數(shù)據(jù)源的對象中,并置于所述待顯示數(shù)據(jù)源的頭部,由所述新數(shù)據(jù)源填充所述占位數(shù)據(jù)。在本實施例中,所述插入新數(shù)據(jù)源模塊包括構造占位數(shù)據(jù)子模塊和添加及填充子模塊。所述構造占位數(shù)據(jù)子模塊構造一個與所述新數(shù)據(jù)源的數(shù)據(jù)類型相同的占位數(shù)據(jù),所述添加及填充子模塊將所述占位數(shù)據(jù)添加到存放待插入新數(shù)據(jù)源的待顯示數(shù)據(jù)源的對象中,并置于所述待顯示數(shù)據(jù)源的頭部,用所述新數(shù)據(jù)源來填充所述占位數(shù)據(jù)。下面是向一個待顯示數(shù)據(jù)源的頭部插入一新數(shù)據(jù)源的主要程序代碼:Object[]recommendSection={0,0,0,″″,″″,″″,0,SECTION_RECOMMEND,″″,″″,″″,″″,″″,0,0,0,0,0,0,0};whatsCallCursor.addRow(recommendSection);上述程序中構造的占位數(shù)據(jù)recommendSection一共有20項,第一項到第二十項對應數(shù)據(jù)類型,與后面的函數(shù)addRow()一一對應,構成插入新數(shù)據(jù)源的占位符。由whatsCallCursor.addRow(recommendSection)把這一項占位數(shù)據(jù)置于whatscallCursor數(shù)據(jù)源的頭部,并用所述新數(shù)據(jù)源填充所述占位數(shù)據(jù)。圖4為本發(fā)明電子設備一個實施例的結構示意圖,可以實現(xiàn)本發(fā)明圖1~3所示實施例的流程,如圖4所示,上述電子設備可以包括:殼體41、處理器42、存儲器43、電路板44和電源電路45,其中,電路板44安置在殼體41圍成的空間內部,處理器42和存儲器43設置在電路板44上;電源電路45,用于為上述電子設備的各個電路或器件供電;存儲器43用于存儲可執(zhí)行程序代碼;處理器42通過讀取存儲器43中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行以下步驟:構造第一對象;獲取在第一區(qū)域顯示的第一待顯示數(shù)據(jù)源,并將所述第一待顯示數(shù)據(jù)源存放到所述第一對象中;構造第二對象;獲取在第二區(qū)域顯示的第二待顯示數(shù)據(jù)源,并將所述第二待顯示數(shù)據(jù)源存放到所述第二對象中;對所述第一待顯示數(shù)據(jù)源和所述第二待顯示數(shù)據(jù)源進行垂直合并;對所述垂直合并后得到的結果進行顯示。該電子設備以多種形式存在,包括但不限于基于安卓系統(tǒng)的以下設備形式:(1)移動通信設備:這類設備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標。這類終端包括:智能手機、多媒體手機、功能性手機,以及低端手機等。(2)超移動個人計算機設備:這類設備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網特性。這類終端包括:PDA、MID和UMPC設備等。(3)便攜式娛樂設備:這類設備可以顯示和播放多媒體內容。該類設備包括:音頻、視頻播放器,掌上游戲機,電子書,以及智能玩具和便攜式車載導航設備。(4)其他具有數(shù)據(jù)交互功能的電子設備。本發(fā)明實施例還提供了一種存儲介質,用于存儲應用程序,所述應用程序用于執(zhí)行本發(fā)明實施例所提供的一種基于安卓系統(tǒng)的分區(qū)域顯示方法。本發(fā)明實施例還提供了一種應用程序,用于執(zhí)行本發(fā)明實施例所提供的一種基于安卓系統(tǒng)的分區(qū)域顯示方法。需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當然,在實施本發(fā)明時可以把各單元/模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術領域:
的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求的保護范圍為準。當前第1頁1 2 3