麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

對聯系人表項的合并及去重操作的處理方法和觸控終端的制作方法

文檔序號:8004629閱讀:201來源:國知局
對聯系人表項的合并及去重操作的處理方法和觸控終端的制作方法
【專利摘要】本發明公開了對聯系人表項的合并及去重操作的處理方法和觸控終端,其處理方法包括:A、開啟通訊錄,顯示所有聯系人表項;B、根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項;C、合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。本發明只需拖動想要合并的聯系人表項就能刪除通訊錄中的冗余記錄,而且在合并的同時還去除了重復信息,并檢測沖突信息,提高了觸控終端的智能化效果,提升了用戶體驗。
【專利說明】對聯系人表項的合并及去重操作的處理方法和觸控終端
【技術領域】
[0001]本發明涉及智能終端【技術領域】,特別涉及一種對聯系人表項的合并及去重操作的處理方法和觸控終端。
【背景技術】
[0002]智能手機等智能終端的聯系人信息可以通過手工輸入、SIM卡導入、SD卡導入、以及從網絡數據備份中導入等方式錄入到聯系人列表中,在導入過程中,有時會出現一些的重復或冗余的信息,譬如:多條記錄對應同一個聯系人名字,且聯系人電話號碼相同,其它信息(如地址等)也相同;或者,多條記錄對應同一個聯系人名字,但聯系人電話號碼不同或不完全相同(即存在多個號碼),甚至其它信息(如地址信息)也不同。
[0003]目前,用戶面臨上述情況時,往往會多花較多時間從聯系人列表中找到想要的號碼,同時會對這些冗余或重復信息進行合并處理,由于智能手機自身不知道哪些是需要合并處理,哪些不需要合并處理(因為現實中可能存在兩個不同的聯系人但名字一樣的情況),因此用戶只能手工處理來刪除一些冗余信息及對重復信息合并。
[0004]在處理上述冗余信息和重復信息時,一般是由用戶打開聯系人表項信息,之后選擇其中一個不想要的記錄(即聯系人表項)后刪除該記錄;或者需要用戶在其中一個聯系人表項中添加其它聯系人表項中的信息(如添加一個電話號碼),然后再刪除其它聯系人表項。所有這些過程都需要用戶做很多繁瑣的操作,需要打開很多的窗口,在不同的窗口間切來切去,非常麻煩,無法體現智能終端的智能化特點。

【發明內容】

[0005]鑒于上述現有技術的不足之處,本發明的目的在于提供一種對聯系人表項的合并及去重操作的處理方法和觸控終端,能通過拖動聯系人表項的方式合并聯系人記錄,且能在合并的同時去除重復信息,并檢測沖突信息。
[0006]為了達到上述目的,本發明采取了以下技術方案:
一種對聯系人表項的合并及去重操作的處理方法,其包括:
A、開啟通訊錄,顯示所有聯系人表項;
B、根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項;
C、合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。
[0007]所述的對聯系人表項的合并及去重操作的處理方法中,所述步驟A還包括:將聯系人表項按聯系人的姓名排序。
[0008]所述的對聯系人表項的合并及去重操作的處理方法中,所述步驟B具體包括: Biu當檢測觸摸屏上有兩個觸摸點時,記錄兩觸摸點坐標之間的所有聯系人表項;
B12、接收合并聯系人表項的拖動動作,當一個觸摸點所在的聯系人表項拖動至與另一
觸摸點所在聯系人表項部分重疊時,合并所述所有聯系人表項。[0009]所述的對聯系人表項的合并及去重操作的處理方法中,所述步驟B具體包括:
B21、當檢測觸摸屏上有兩個觸摸點時,記錄兩觸摸點坐標所在通訊錄的聯系人表項; B22、接收合并聯系人表項的拖動動作,當一個觸摸點所在的聯系人表項拖動至與另一
觸摸點所在聯系人表項部分重疊時,合并這兩個聯系人表項。
[0010]所述的對聯系人表項的合并及去重操作的處理方法中,在步驟B21中,兩觸摸點坐標所在通訊錄的聯系人表項為通訊錄中兩個相鄰的聯系人表項或者兩個間隔的聯系人表項。
[0011]所述的對聯系人表項的合并及去重操作的處理方法中,在拖動聯系人表項時,通過offsetTopAndBottom(d)函數對視圖設置偏移量。
[0012]所述的對聯系人表項的合并及去重操作的處理方法中,所述步驟C具體包括:
Cl、在合并聯系人表項時,去除所選聯系人表項中的重復信息;
C2、檢測所選聯系人表項中的各項信息是否有沖突;
C3、若有,輸出提示信息提示用戶是否忽略所述沖突的信息;
C4、若是,則保存所述沖突的信息。
[0013]所述的對聯系人表項的合并及去重操作的處理方法中,所述合并所選聯系人表項時通過 madapter.mergeContacts (choosedob js)函數合并。
[0014]一種用于實現上述對聯系人表項的合并及去重操作的處理方法的觸控終端,其包括:
應用開啟模塊,用于開啟通訊錄,顯示所有聯系人表項;
拖動合并模塊,用于根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項;
信息處理模塊,用于合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。
[0015]所述的觸控終端,其還包括:排序模塊,用于將聯系人表項按聯系人的姓名排序。
[0016]相較于現有技術,本發明提供的對聯系人表項的合并及去重操作的處理方法和觸控終端,通訊錄開啟后根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項;合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。本發明只需拖動想要合并的聯系人表項就能刪除通訊錄中的冗余記錄,而且在合并的同時還去除了重復信息,并檢測沖突信息,提高了觸控終端的智能化效果,提升了用戶體驗。
【專利附圖】

【附圖說明】
[0017]圖1為本發明對聯系人表項的合并及去重操作的處理方法流程圖。
[0018]圖2為本發明對聯系人表項的合并及去重操作的處理方法中聯系人列表的示意圖。
[0019]圖3為本發明對聯系人表項的合并及去重操作的處理方法中合并兩條聯系人表項的示意圖。
[0020]圖4為本發明對聯系人表項的合并及去重操作的處理方法中合并兩條以上的聯系人表項的不意圖。[0021]圖5為本發明觸控終端的結構框圖。
【具體實施方式】
[0022]本發明提供一種對聯系人表項的合并及去重操作的處理方法和觸控終端,在合并去重操作時,用戶只需在通訊錄列表中,用一只手指按住其中一條記錄(聯系人表項)不放;另一只手指按住另一個記錄,并向第一次按住的記錄位置拖動;當兩個記錄出現重疊時,以第一次按住的記錄作為要保留的記錄來進行合并操作,把第一次按住和第二次按住之間的所有記錄合并在一起,或者僅合并被按住的兩條記錄。本發明通過直接在屏幕上進行劃動手指操作,符合人的操作習慣,可以對兩個記錄和多個記錄進行處理,非常靈活。并且這種操作方式用戶只需要在一個屏上就可以完成,操作非常簡便。
[0023]為使本發明的目的、技術方案及效果更加清楚、明確,以下參照附圖并舉實施例對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
[0024]請參閱圖1,其為本發明對聯系人表項的合并及去重操作的處理方法較佳實施例的流程圖。所述的方法包括:
S100、開啟通訊錄,顯示所有聯系人表項。
[0025]本實施例中,在開啟通訊錄時,將聯系人表項按聯系人的姓名排序。如圖2所示,以智能手機為例,在智能手機中,聯系人大多以列表形式顯示給用戶,通常是以聯系人姓名的漢語拼音順序進行排列,因此冗余的聯系人信息通常是排列一起的,這就為合并去重操作創造了條件。
[0026]S200、根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項。
[0027]具體實施時,通過用戶手指觸控觸摸屏選取聯系人表項,在選取時可以通過菜單設置選取方式,實現兩個觸摸點選取兩條聯系人表項或兩條以上的聯系人表項。譬如,在選取時可設置選取范圍為兩個觸摸點之間所有聯系人表項,也可以設置選取范圍僅是兩個觸摸點所在位置的聯系人表項,下文將對這些操作過程和實現方式進行詳細描述。
[0028]S300、合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。
[0029]其中,所述S300具體包括:第一步、在合并聯系人表項時,去除所選聯系人表項中的重復信息;第二步、檢測所選聯系人表項中的各項信息是否有沖突;若有,輸出提示信息提示用戶是否忽略所述沖突的信息;若用戶選擇是,則保存所述沖突的信息,若用戶選擇否,則根據用戶的選擇保留或刪除沖突信息。
[0030]具體實施時,合并聯系人表項首先需要對擬合并項進行沖突檢測,對每一個聯系人表項中的每個屬性(如聯系人名字,地址等信息)都要進行對比,如果一個屬性只有一個聯系人表項中有,則表示沒有沖突的;如果多個聯系人表項都有一個相同的屬性(如地址),但這些屬性的值都是相同的,表示這些是重復信息,也是沒有沖突的,合并時保留其中的一條信息即可;只有當多個聯系人表項都有一個相同的屬性,且有兩個以上的值不同時才會檢測出沖突(如有兩個不一樣的地址),這時需要記錄下沖突的信息,具體包括:沖突項的名稱及沖突內容,并提示用戶是否忽略,如果用戶選擇忽略則保留這些沖突信息,如果用戶不忽略,則根據用戶的選擇刪除冗余的信息。
[0031]本發明提供的聯系人表項的合并及去重操作的處理方法可以對兩條或兩條以上的聯系人表項進行合并操作。
[0032]當合并兩條聯系人表項時,所述步驟S200具體包括:第一步、當檢測觸摸屏上有兩個觸摸點時,記錄兩觸摸點坐標所在通訊錄的聯系人表項;第二步、接收合并聯系人表項的拖動動作,當一個觸摸點所在的聯系人表項拖動至與另一觸摸點所在聯系人表項部分重疊時,合并這兩個聯系人表項。
[0033]其中,兩觸摸點坐標所在通訊錄的聯系人表項為通訊錄中兩個相鄰的聯系人表項或者兩個間隔的聯系人表項。在對兩條相鄰的聯系人表項合并時,圖3所示,如果用戶認為圖3 a中的兩個BI表示同一聯系人,則可以通訊錄中,用一只手指按住其中的第一條記錄(即第一條聯系人表項)不放;另一只手指按住第二條記錄(即第二條聯系人表項),選取這兩條記錄后,第二只手指控制第二次選取的記錄向第一次選到的記錄移動;當兩個記錄出現重疊時(如圖3b所示),放開第二個手指或兩個手指都放開,此時以第一次按住的記錄作為要保留的記錄來進行合并操作,把兩條記錄合并在一起,合并后的聯系人表項如圖3c所示。在檢測是否需要進行合并操作時,通過觸摸屏上的觸摸點數量來判斷,如果觸摸點只有一個,或者觸摸點消失,則表示用戶發出了合并操作。此時,如果兩個聯系人表項沒有重疊部分,則控制被拖動的聯系人表項移動至原來的位置。在合并時,本發明采用以按住不動的表項為合并基礎,將移動的表項合并至該表項中。本實施例雖然是以第一條記錄為基礎,將被拖動的第二條記錄合并至第一條記錄中,但在其它實施例中,還可以按住第二條記錄不動,拖動第一條記錄,將第一條記錄合并到第二次記錄中,本發明對此不作限制。
[0034]如果用戶希望一次合并兩條以上的聯系人表項,通過設置功能設置聯系人表項的選擇方式。在合并時,所述步驟S200具體包括:第一步、當檢測觸摸屏上有兩個觸摸點時,記錄兩觸摸點坐標之間的所有聯系人表項;第二步、接收合并聯系人表項的拖動動作,當一個觸摸點所在的聯系人表項拖動至與另一觸摸點所在聯系人表項部分重疊時,合并所述所有聯系人表項。
[0035]在選取聯系人表項時,可以選取兩條或兩條以上的相鄰記錄。如圖2和圖4所示,在圖2的通訊錄列表中,如果用戶確定兩個名字為BI和兩個名字為B2的聯系人表項表示的都是同一個聯系人,只是名字不一樣的話,可以進行圖4所示的操作。如圖4a所示,用戶將一只手指按住第一個記錄(排列在最前面的一條聯系人表項,如第一個BI),將另一個手指按住第四個記錄(排列在最后面的一條聯系人表項,如第一個B2),并使第二個手指按住第四個記錄向第一個記錄移動;當第四個記錄與第一個記錄出現重疊時(如圖4b所示),放開第二個手指或兩個手指都放開,此時以第一次按住的記錄作為要保留的記錄來進行合并操作,將第一次按住和第二次按住之間的所有記錄合并在一起,放開手指后,四個聯系人表項被合成一個BI,如圖4c所示。在這四條記錄有重復時,同樣以第一條記錄為前提,去除其它記錄中重復的信息,并在檢測是否有沖突的信息。
[0036]由于聯系人表項合并后,所有被合并的聯系人表項在通訊錄中就只有一個聯系人表項了,就只會有一個名字,在合并兩個以上的聯系人表項時,如果用戶想保留中間的名字,可以進行兩次操作來實現。并且在合并時,以固定不動的聯系人表項的名字作為合并后的名字,將拖動的聯系人表項合并到固定不動的聯系人表項中。[0037]本發明的對聯系人表項的合并及去重操作的處理方法中,其操作方法簡單快捷,通過直接在屏幕上進行劃動手指操作,符合人的生理習慣,因此很形象直觀,用戶易于接受。此操作可以對兩個記錄和多個記錄進行處理,非常靈活。并且這種方式用戶只需要在一個屏上就可以完成,非常方便,使用戶進行合并聯系人表項操作所需要的時間大大減少。另外由于本發明有沖突檢測功能,可以防止用戶不希望的合并操作的發生,確保了安全性能。
[0038]本發明的合并操作是在通訊錄列表中進行的,但現有的智能手機系
統(如android系統)中,通訊錄列表沒有提供這種拖動操作的方式及相關函數接口,因此本發明需要對通訊錄列表進行重載后增加相應的函數來實現聯系人表項的拖動操作,以此來識別用戶的合并操作意圖,并提供相應的顯示效果給用戶。
[0039]當識別出合并操作意圖后,智能終端需要實現把聯系人數據庫中的
聯系人表項進行合并操作的函數方法,以此實現真正的聯系人表項合并工作。并且,在合并操作執行前,應當向用戶進行確認,以防止用戶進行了誤操作。
[0040]以下以智能手機為例對本發明的實現方式進行詳細說明1、在通訊錄界面實現聯系人表項的拖動操作:
以android系統為例,用戶界面的通訊錄列表文件為:packages/apps/Contacts/src/com/android/contacts/1ist/DefaultContactBrowseListFragment.java。
[0041]如果要實現聯系人表項的縱向拖動,本發明需要改動通訊錄的觸摸事件處理函數(onTouchEvent函數),需要增加對多點觸摸的支持,具體如下:
首先,當檢測到有兩個觸摸點時,在第二個觸摸點按下時,記錄下兩個坐標點之間的所有聯系人表項,如下述偽代碼中 的ACT10N_P0INTER_D0WN部分。然后當第二個觸摸點移動時,所有被記下的聯系人表項向第一個手指選中的聯系人表項移動,移動的距離會根據被移動的聯系人表項與第一個手指選中的聯系人表項之間的距離作調整,從而能做到所有被記下的聯系人表項同時向第一個手指選中的聯系人表項靠攏的效果,如下述偽代碼中的ACT10N_M0VE部分。最后,當第二個手指離開屏幕的時候,判斷第一個手指選中的聯系人表項是否與第二個手指選中聯系人表項有重疊部分,如果有,則觸發執行合并操作,否則把所有被移動的視圖移回原處,如下述偽代碼中的ACT10N_P0INTER_UP部分。
[0042]其中,改動觸摸事件的處理函數(onTouchEvent函數),可以通過繼承父函數的方法進行,更為具體的描述見下的偽代碼:
private float yo = -1.0f; //上一次按的第二個點的縱向坐標位置 private float firstYl;//第二個手指可以劃動的界限坐標位置
private float firstY2; //第二個手指可以劃動的界限坐標位置 int positionl;//第一個手指選中的聯系人表項在列表中的位置
int position2;//第二個手指選中的聯系人表項在列表中的位置
private chooseOb j [] choosedob js; //用于記錄兩個手指間的聯系人表項及移動量記錄
private boolean choosedSameView = false; //是否兩個手指選中同一個聯系人表

?Override
public boolean onTouchEvent (MotionEvent ev) { //重載觸摸屏事件int action = ev.getAction () ;// 獲取事件
int pointcount = ev.getPointerCount () ; //獲取觸點個數 if (pointcount〈 2) {//如果為單點觸摸
return super.0nTouchEvent (ev) ;//執行單點觸摸的操作
}
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACT10N_P0INTER_D0WN: {//如果是第二個點的按下事件 int xl = (int) ev.getX(O) ;//記錄觸摸點的坐標位置
int yl = (int) ev.getY(O);
int x2 = (int) ev.getX(I);
int y2 = (int) ev.getY(I);
yo = y2;//記錄上一次按的第二個點的縱向坐標位置
firstYl = yl;//記錄第二個手指可以劃動的界限坐標位置
firstY2 = y2;//記錄第二個手指可以劃動的界限坐標位置
int positionl = pointToPosition (xl, yl) ;//獲取第一個手指按的聯系人表
項在列表中的位置
int position2 = pointToPosition (x2, y2) ;//獲取第二個手指按的聯系人表
項在列表中的位置
choosedSameView = false;
if (positionl == position2) {//如果是同一個聯系人表項則退出
choosedSameView = true;
break;
}
//記錄下第一個手指與第二手指之間所有的聯系人表項的視圖 saveAlIchoosedItems(choosedobjs, positionl, position2); break;
}
case MotionEvent.ACTION—MOVE: { //如果是點移動操作事件 float y2 = ev.getY (I) ;//獲取當前的第二個觸摸點的縱坐標
//如果越界或是同一個聯系人表項則退出 if (choosedSameView || !isln(firstYl, y2, firstY2)) break; float offd = y2 - yo;//計算第二個觸摸點本次移動距離
yo = y2;//更新上一次按的第二個點的縱向坐標位置
Il計算兩個手指之間的聯系人表項的個數
int count = choosedobjs != null ? choosedobjs.length: 0;
for (int i = 0; i < count; i++) {
float offdd = offd * i / (count -1) ; //計算每個聯系人表項的視圖需要移動的距離
choosedobjs [i].move (offdd) ;//移動聯系人表項的視圖}
break;
}
case MotionEvent.ACTION—POINTER—UP: {// 如果是第二個手指距離屏
幕事件
float y2 = ev.getY (I) ; //獲取當前的第二個觸摸點的縱坐標
//如果第一個選中的聯系人表項和第二個選中的聯系人表項足夠近,則觸發合并
操作
if (Iy2 - yl < minDistance) {
madapter.mergeContacts (choosedobjs) ;// 合并操作
madapter.notifyDataSetChanged () ;// 刷新
break;
}
//如果不能合并,則放棄并把列表還原
int count = choosedobjs != null ? choosedobjs.length: 0;
for (int i = 0; i < count; i++) {
choosedobjs [i].moveBack() ; //所有表項視圖移動回最初的位置

}
choosedobjs = null;//清空選中的聯系人表項
madapter.notifyDataSetChanged () ;// 刷新
break;
}
default:;
}
return true;
}
以上偽代碼中的choosedobjs記錄了第一個手指與第二個手指選中的所有聯系人表項,每個聯系人表項記錄chooseObj對象中,這個對象中記錄了聯系人表項的視圖(View)、聯系人信息以及位移記錄,對視圖的移動也是通過這個對象中的move方法來實現,其中,move方法是通過對視圖設置偏移量(offsetTopAndBottom(d)函數)來實現的,即:在拖動聯系人表項時,通過offsetTopAndBottom(d)函數對視圖設置偏移量,具體偽代碼如下:private void move (int d) {//move 方法
view.0ffsetTopAndBottom(d) ; // 設置偏移量
offset += d;//記錄偏移量
}
當第二個手指離開屏幕時,如果識別出可以進行合并操作則觸發合并操作,合并所選聯系人表項通過 madapter.mergeContacts (choosedobjs)函數合并,如上述 madapter.mergeContacts (choosedobjs)函數所不。
[0043]2、聯系人表項合并與用戶確認操作合并聯系人記錄首先需要對擬合并項進行沖突檢測,對每一個聯系人表項中的每個屬性(如聯系人名字,地址等信息)都要進行對比,如果一個屬性只有一個聯系人表項有,則表示沒有沖突;如果多個聯系人表項都有一個相同的屬性(如地址),但這些屬性的值都是相同的,也是沒有沖突的,只有兩個以上的值不同時才會檢測出沖突(如有兩個不一樣的地址),這時需要記錄下沖突的信息,包括:沖突項的名稱及沖突內容。
[0044]其中,沖突檢測的函數為:privateboolean checkConf Iict (String iteml,String item2, String tag),具體實現方式如下:
Il檢測沖突的函數
private boolean checkConfIict(String iteml, String item2, String tag) {
if (iteml == null) { //如果是第一個記錄,則不可能是沖突的,直接記錄
iteml = item2;
return false;
} else if (item2 == iteml) { //如果兩個記錄是一樣的,也無沖突
return false;
} else {
conf IictString.append (tag + iteml + 〃 〃 + item2) ; //發生沖突,記錄下沖
突內容
return true;
}
}
在檢測沖突的函數中,如果檢測出沖突,函數返回值為真,否則為假。如果沒有檢測出沖突,則參數iteml的值將記錄下將要保存的值。上述代碼中的conf IictString是記錄沖突內容的字符串,在下面的代碼中將再提及。本實施例中,對于電話號碼不用作沖突檢測,因為一個聯系人可以使用多個號碼,但要將重復的去掉。
[0045]本發明實施例中,檢測沖突的過程同時也是作聯系人表項屬性的合并的過程,只是沒有最終寫到數據庫中,這個過程中,本發明會為每個聯系人表項屬性保留一個值,如果沒有沖突,保留的是唯一的值,如果有沖突,保留的是離第一個手指選中項最近的聯系人表項的屬性值。
[0046]在有了每個聯系人表項的屬性值后,就可以將其寫入到數據庫中了,但如果有沖突的話,必須要與用戶進行確認,告知其沖突的內容,如果用戶確認沖突是可以忽略的之后,本發明才能進行實際的數據庫寫入操作。
[0047]整個合并操作的詳細過程,見如下的偽代碼所示: private StringBuilder conflictString; // 沖突記錄字符串 Il以下用于最終要保存的聯系人表項屬性信息
private String name, company, email, im, address, notes, nickname, website;private HashMap<String, String〉 phoneNumber = new HashMap<String,String)();
public void mergeContacts(final chooseObj[] contacts) {
boolean haveConfIict = false;// 設置沖突標記conflictString = new StringBuilder () ;// 設置沖突記錄字符串
int count = contacts, length;//要合并的個數
for (int i = O; i<count; i++) { //對每個項進行沖突檢測//檢查名字是否沖突haveConf Iict | =checkConf Iict (name, getNameFromUri (contacts [i].uri),〃Name〃);
//檢查公司名是否沖突haveConfIict|=checkConfIict(company, getCompanyFromUri(contacts[i].uri),"Company");
//檢查郵件地址是否沖突
haveConfIict|= checkConfIict (email, getEmaiIFromUri (contacts [i].uri),"Email");
//檢查及時通信地址是否沖突
haveConfIict|=checkConfIict(im, getIMFromUri (contacts[i].uri),〃IM〃);
//檢查地址是否沖突haveConflict|=checkConfIict(address, getAddressFromUri(contacts[i].uri),〃Address〃);
//檢查記錄是否沖突
haveConflict |= checkConfIict (notes, getNotesFromUri (contacts[i].uri),"Notes");
//檢查別名是否沖突haveConflict | =checkConfIict (nickname, getNickNameFromUri (contacts [i].uri),〃NickName〃);
//檢查網址是否沖突haveConflict|=checkConfIict(website,getWebsiteFromUri (contacts[i].uri),"Website");
//記錄下所有的電話號(去掉重復的)
String number, kind;
getPhoneNumberFromUri(contacts[i].uri, number, kind);
if (!phoneNumber.containsKey(number)) {
phoneNumber.put(number, kind);
}
}
if (haveConflict) { //如果發生沖突,則彈出對話框,請求用戶確認
new AlertDialog.Builder (mContext).setTitle(〃有沖突,是否合并,沖突為:〃); //設置標題.setMessage (conflictString.toStringO) ; // 設置沖突內容.setPositiveButton (〃 忽略沖突",new DialogInterface.0nClickListener O {
//如果用戶選則忽略沖突, 則進行合并操作public void onClick(Dialoglnterface dialog, int which) {
mergeContacts (phoneNumber, name, company, email, //合并操作
im, address, notes, nickname, website, contacts);

}
}).setNegativeButton 取消〃,null)//如果用戶取消則什么也不執行.create 0.show O ;
} else { //如果沒有沖突,則直接執行合并操作,不進行提示
mergeContacts(phoneNumber, name, company, email,
im, address, notes, nickname, website, contacts);
}
}
從以上代碼中可見,整個過程第一部分是檢測沖突,之后如果發生沖突則彈出對話框,告訴用戶哪些內容是有沖突的,若用戶選擇忽略,則繼續進行合并操作,如果沒有檢測出沖突則不用提示用戶而直接進行合并。
[0048]其中,合并聯系人表項的過程是:首先將沖突檢測過程中所得到的聯系人表項屬性信息寫到第一個手指選擇的聯系人表項的數據庫記錄中,然后再把其它的聯系人表項刪除。
[0049]合并操作的函數如下所示:
//執行合并操作的函數
private void mergeContacts(HashMap<String, String〉 phoneNumber, Stringname, String company, String email,
String im, String address,` String notes, String nickname, Stringwebsite, chooseObj[] contacts) {
int count = contacts, length;//要合并的個數
Il第一個記錄是第一個手指選中的記錄,把所有要合并的信息記錄到URI所指向的聯系人表項中
EditAndSaveContact (contacts[O].uri, phoneNumber, name, company,
email, im, address, notes, nickname, website);
//刪除其它的聯系人表項for (int i = I; i〈count; i++) {deIeteTheContact (contacts[i].uri);
}
}
本發明還相應提供一種用于實現上述對聯系人表項的合并及去重操作的處理方法的觸控終端,該觸控終端優選為智能手機,如圖5所示,其包括:應用開啟模塊10、拖動合并模塊20和信息處理模塊30。所述應用開啟模塊10用于開啟通訊錄,顯示所有聯系人表項;拖動合并模塊20用于根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項;信息處理模塊30用于合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。其具體工作原理和實現方式,請參閱上述實施例。
[0050]進一步地,本發明的觸控終端還包括:排序模塊,用于將聯系人表項按聯系人的姓名排序。其具體工作原理和實現方式,請參閱上述實施例。
[0051]綜上所述,本發明只需拖動想要合并的聯系人表項就能刪除通訊錄中的冗余記錄,而且在合并的同時還去除了重復信息,并檢測沖突信息,提高了觸控終端的智能化效果,提升了用戶體驗。
[0052]另外,本發明通過直接在屏幕上進行劃動手指操作,符合人的操作習慣,可以對兩個記錄或兩個以上的記錄進行處理,非常靈活。并且這種操作方式用戶只需要在一個屏上就可以完成,操作非常簡便。
[0053]可以理解的是,對本領域普通技術人員來說,可以根據本發明的技術方案及其發明構思加以等同替換或改變,而所有這些改變或替換都應屬于本發明所附的權利要求的保護范圍。
【權利要求】
1.一種對聯系人表項的合并及去重操作的處理方法,其特征在于,包括: A、開啟通訊錄,顯示所有聯系人表項; B、根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項; C、合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。
2.根據權利要求1所述的對聯系人表項的合并及去重操作的處理方法,其特征在于,所述步驟A還包括:將聯系人表項按聯系人的姓名排序。
3.根據權利要求1所述的對聯系人表項的合并及去重操作的處理方法,其特征在于,所述步驟B具體包括: B11、當檢測觸摸屏上有兩個觸摸點時,記錄兩觸摸點坐標之間的所有聯系人表項; B12、接收合并聯系人表項的拖動動作,當一個觸摸點所在的聯系人表項拖動至與另一觸摸點所在聯系人表項部分重疊時,合并所述所有聯系人表項。
4.根據權利要求1所述的對聯系人表項的合并及去重操作的處理方法,其特征在于,所述步驟B具體包括: B21、當檢測觸摸屏上有兩個觸摸點時,記錄兩觸摸點坐標所在通訊錄的聯系人表項; B22、接收合并聯系人表項的拖動動作,當一個觸摸點所在的聯系人表項拖動至與另一觸摸點所在聯系人表項部分重疊時,合并這兩個聯系人表項。
5.根據權利要求4所述的對聯系人表項的合并及去重操作的處理方法,其特征在于,在步驟B21中,兩觸摸點坐標所在通訊錄的聯系人表項為通訊錄中兩個相鄰的聯系人表項或者兩個間隔的聯系人表項。
6.根據權利要求3或4所述的對聯系人表項的合并及去重操作的處理方法,其特征在于,在拖動聯系人表項時,通過offsetTopAndBottom(d)函數對視圖設置偏移量。
7.根據權利要求1所述的對聯系人表項的合并及去重操作的處理方法,其特征在于,所述步驟C具體包括: Cl、在合并聯系人表項時,去除所選聯系人表項中的重復信息; C2、檢測所選聯系人表項中的各項信息是否有沖突; C3、若有,輸出提示信息提示用戶是否忽略所述沖突的信息; C4、若是,則保存所述沖突的信息。
8.根據權利要求1所述的對聯系人表項的合并及去重操作的處理方法,其特征在于,所述合并所選聯系人表項時通過madapter.mergeContacts (choosedob js)函數合并。
9.一種用于實現權利要求1所述對聯系人表項的合并及去重操作的處理方法的觸控終端,其特征在于,包括: 應用開啟模塊,用于開啟通訊錄,顯示所有聯系人表項; 拖動合并模塊,用于根據聯系人表項的選取動作記錄所選聯系人表項,接收合并聯系人表項的拖動動作,并根據所述拖動動作合并所選聯系人表項; 信息處理模塊,用于合并時去除所選聯系人表項中的重復信息,并檢測所選聯系人表項中的沖突信息。
10.根據權利要求9所述的觸控終端,其特征在于,還包括:排序模塊,用于將聯系人表項按聯系人的姓名排序。
【文檔編號】H04M1/275GK103442135SQ201310361512
【公開日】2013年12月11日 申請日期:2013年8月19日 優先權日:2013年8月19日
【發明者】雷明 申請人:惠州Tcl移動通信有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 城市| 泽库县| 夹江县| 普安县| 盐源县| 怀化市| 沐川县| 阿拉善左旗| 保亭| 镇安县| 遂溪县| 怀来县| 武鸣县| 葫芦岛市| 富平县| 辽源市| 陆丰市| 鄂托克前旗| 阳山县| 卓尼县| 肇东市| 通海县| 根河市| 资溪县| 荥经县| 廊坊市| 尉氏县| 清远市| 册亨县| 罗江县| 巨鹿县| 建昌县| 上蔡县| 台江县| 荔波县| 民乐县| 五河县| 衡阳市| 松潘县| 应用必备| 罗山县|