对联系人表项的合并及去重操作的处理方法和触控终端的制作方法

文档序号:8004629阅读:163来源:国知局
对联系人表项的合并及去重操作的处理方法和触控终端的制作方法
【专利摘要】本发明公开了对联系人表项的合并及去重操作的处理方法和触控终端,其处理方法包括: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