·18·
电 子 测 试
或损坏。
2 功能分析
Android 手机通讯管理软件主要功能模块包括 :联系人添
加、联系人查看、联系人编辑、联系人删除、呼叫、发送短信、搜索
和导入导出,
如图 1 所示 :
图1 系统功能模块
根据需求分析结果,
通讯录有如图 2 所示的系统功能结构。
图2 系统功能结构
用户进入手机通讯管理软件后,会看到联系人列表界面。联
系人列表界面主菜单中包括添加联系人、查找联系人、查看所有
分组和导入导出菜单项。点击添加联系人,则进入联系人添加界
面,添加成功后返回联系人列表界面。
点击搜索菜单,
则进入联系
人搜索界面,输入联系人的全名或一个字,即可查找到相关联系
人,点击联系人会进入联系人查看界面,可以对联系人进行编辑、
删除、拨打电话、
发送短信。
联系人导入导出是将联系人数据备份
到 SD 卡中,在联系人列表界面,长按某一联系人,会有菜单项弹
出,显示查看联系人、编辑联系人和删除联系人。该软件的业务流
程如图 3 所示 :
图3 程序流程图
3 系统设计与实现
运 行 程 序 进 入 启 动 界 面,然 后 跳 转 到 浏 览 联 系 人
MainActivity,显示列表的同时创建点击某个联系人的弹出菜单
和 Menu 按钮菜单。
如图 4 所示 :
图4浏览联系人
下面的代码表示浏览联系人时所需的 java 代码。
protected void onResume
(){
super.onResume
()
;
if
(mCursor != null){
// 读取并显示联系人信息
mCursor.moveToFirst
()
;
m T e x t V i e w N a m e . s e t T e x t( m C u r s o r . g e t S t r i n g
(ContactColumn.NAME_COLUMN)
)
;
m T e x t V i e w M o b i l e . s e t T e x t( m C u r s o r . g e t S t r i n g
(ContactColumn.MOBILENUM_COLUMN)
)
;
m T e x t V i e w H o m e . s e t T e x t( m C u r s o r . g e t S t r i n g
(ContactColumn.HOMENUM_COLUMN)
)
;
m T e x t V i e w A d d r e s s . s e t T e x t( m C u r s o r . g e t S t r i n g
(ContactColumn.ADDRESS_COLUMN)
)
;
m T e x t V i e w E m a i l . s e t T e x t( m C u r s o r . g e t S t r i n g
(ContactColumn.EMAIL_COLUMN)
)
;
m T e x t V i e w B l o g . s e t T e x t( m C u r s o r . g e t S t r i n g
(ContactColumn.BLOG_COLUMN)
)
;
}
else{
setTitle
(
“错误信息”
)
;
}
}
长 按 某 个 联 系 人 弹 出 菜 单,选 择 查 看 联 系 人 跳 转 到
ViewContactActivity,
显示所点击的联系人信息。
如图 5 所示。
图5查看联系人
在查看联系人信息时会执行下列代码。
public class ContactColumn implements BaseColumns{
publicContactColumn
()
{
3
㋏㒳ࡳ㛑㒧ᵘ
⫼᠋䖯ܹᴎ䗮䆃ㅵ⧚䕃ӊৢˈӮⳟࠄ㘨㋏Ҏ߫㸼⬠䴶DŽ㘨㋏Ҏ߫㸼⬠䴶Џ㦰ऩЁࣙᣀ
⏏ࡴ㘨㋏Ҏǃᶹᡒ㘨㋏Ҏǃᶹⳟ᠔᳝ߚ㒘ᇐܹᇐߎ㦰ऩ乍DŽ⚍ߏ⏏ࡴ㘨㋏Ҏˈ߭䖯ܹ㘨㋏
Ҏ⏏ࡴ⬠䴶ˈ⏏ࡴ៤ࡳৢ䖨ಲ㘨㋏Ҏ߫㸼⬠䴶DŽ⚍ߏ᧰㋶㦰ऩˈ߭䖯ܹ㘨㋏Ҏ᧰㋶⬠䴶ˈ䕧
ܹ㘨㋏ҎⱘܼৡϔϾᄫˈेৃᶹᡒࠄⳌ݇㘨㋏Ҏˈ⚍ߏ㘨㋏ҎӮ䖯ܹ㘨㋏Ҏᶹⳟ⬠䴶ˈৃ
ҹᇍ㘨㋏Ҏ䖯㸠㓪䕥ǃߴ䰸ǃᢼᠧ⬉䆱ǃথ䗕ⷁֵDŽ㘨㋏Ҏᇐܹᇐߎᰃᇚ㘨㋏Ҏ᭄ӑࠄ
6' वЁˈ㘨㋏Ҏ߫㸼⬠䴶ˈ䭓ᣝᶤϔ㘨㋏ҎˈӮ᳝㦰ऩ乍ᔍߎˈᰒ⼎ᶹⳟ㘨㋏Ҏǃ㓪䕥
㘨㋏Ҏߴ䰸㘨㋏ҎDŽ䆹䕃ӊⱘϮࡵ⌕བ ᠔⼎˖
ᑣ⌕
Android ᴎ䗮䆃ᔩ
ᰒ
⼎
㘨
㋏
Ҏ
߫㸼㦰ऩࡳ㛑
㦰ऩࡳ㛑
ᶹ
ⳟ
㘨
㋏
Ҏ
㓪
䕥
㘨
㋏
Ҏ
ߴ
䰸
㘨
㋏
Ҏ
⿏
ܹ
ߚ
㒘
⏏
ࡴ
㘨
㋏
Ҏ
ᶹ
ⳟ
᠔
᳝
ߚ
㒘
ᶹ
ᡒ
㘨
㋏
Ҏ
ᇐ
ܹ
ᇐ
ߎ
⫼᠋
ᴎ䗮䆃ㅵ⧚䕃ӊ
⏏ࡴ㘨㋏Ҏ
㓪
䕥
㘨
㋏
Ҏ
ߴ
䰸
㘨
㋏
Ҏ
㘨㋏Ҏ߫㸼
㘨㋏Ҏ
ᶹ䆶㘨㋏ҎҎ
ᇐߎ
/ᇐߎ
ি
㘨
㋏
Ҏ
ᶹⳟ᠔᳝ߚ㒘
SD व
⿏
ܹ
ߚ
㒘
3
㋏㒳ࡳ㛑㒧ᵘ
⫼᠋䖯ܹᴎ䗮䆃ㅵ⧚䕃ӊৢˈӮⳟࠄ㘨㋏Ҏ߫㸼⬠䴶DŽ㘨㋏Ҏ߫㸼⬠䴶Џ㦰ऩЁࣙᣀ
⏏ࡴ㘨㋏Ҏǃᶹᡒ㘨㋏Ҏǃᶹⳟ᠔᳝ߚ㒘ᇐܹᇐߎ㦰ऩ乍DŽ⚍ߏ⏏ࡴ㘨㋏Ҏˈ߭䖯ܹ㘨㋏
Ҏ⏏ࡴ⬠䴶ˈ⏏ࡴ៤ࡳৢ䖨ಲ㘨㋏Ҏ߫㸼⬠䴶DŽ⚍ߏ᧰㋶㦰ऩˈ߭䖯ܹ㘨㋏Ҏ᧰㋶⬠䴶ˈ䕧
ܹ㘨㋏ҎⱘܼৡϔϾᄫˈेৃᶹᡒࠄⳌ݇㘨㋏Ҏˈ⚍ߏ㘨㋏ҎӮ䖯ܹ㘨㋏Ҏᶹⳟ⬠䴶ˈৃ
ҹᇍ㘨㋏Ҏ䖯㸠㓪䕥ǃߴ䰸ǃᢼᠧ⬉䆱ǃথ䗕ⷁֵDŽ㘨㋏Ҏᇐܹᇐߎᰃᇚ㘨㋏Ҏ᭄ӑࠄ
6' वЁˈ㘨㋏Ҏ߫㸼⬠䴶ˈ䭓ᣝᶤϔ㘨㋏ҎˈӮ᳝㦰ऩ乍ᔍߎˈᰒ⼎ᶹⳟ㘨㋏Ҏǃ㓪䕥
㘨㋏Ҏߴ䰸㘨㋏ҎDŽ䆹䕃ӊⱘϮࡵ⌕བ ᠔⼎˖
ᑣ⌕
Android ᴎ䗮䆃ᔩ
ᰒ
⼎
㘨
㋏
Ҏ
߫㸼㦰ऩࡳ㛑
㦰ऩࡳ㛑
ᶹ
ⳟ
㘨
㋏
Ҏ
㓪
䕥
㘨
㋏
Ҏ
ߴ
䰸
㘨
㋏
Ҏ
⿏
ܹ
ߚ
㒘
⏏
ࡴ
㘨
㋏
Ҏ
ᶹ
ⳟ
᠔
᳝
ߚ
㒘
ᶹ
ᡒ
㘨
㋏
Ҏ
ᇐ
ܹ
ᇐ
ߎ
⫼᠋
ᴎ䗮䆃ㅵ⧚䕃ӊ
⏏ࡴ㘨㋏Ҏ
㓪
䕥
㘨
㋏
Ҏ
ߴ
䰸
㘨
㋏
Ҏ
㘨㋏Ҏ߫㸼
㘨㋏Ҏ
ᶹ䆶㘨㋏ҎҎ
ᇐߎ
/ᇐߎ
ি
㘨
㋏
Ҏ
ᶹⳟ᠔᳝ߚ㒘
SD व
⿏
ܹ
ߚ
㒘
4
㋏㒳䆒䅵Ϣᅲ⦄
䖤㸠ᑣ䖯ܹਃࡼ⬠䴶ˈ✊ৢ䏇䕀ࠄ⌣㾜㘨㋏Ҏ 0DLQ$FWLYLW\ˈᰒ⼎߫㸼ⱘৠᯊ߯ᓎ
⚍ߏᶤϾ㘨㋏Ҏⱘᔍߎ㦰ऩ 0HQX ᣝ䪂㦰ऩDŽབ ᠔⼎˖
⌣㾜㘨㋏Ҏ
ϟ䴶ⱘҷⷕ㸼⼎⌣㾜㘨㋏Ҏᯊ᠔䳔ⱘ MDYD ҷⷕDŽ
SURWHFWHGYRLGRQ5HVXPH^
VXSHURQ5HVXPH
LIP&XUVRU QXOO^
䇏পᑊᰒ⼎㘨㋏Ҏֵᙃ
P&XUVRUPRYH7R)LUVW
P7H[W9LHZ1DPHVHW7H[WP&XUVRUJHW6WULQJ&RQWDFW&ROXPQ1$0(B&2/801
P7H[W9LHZ0RELOHVHW7H[WP&XUVRUJHW6WULQJ&RQWDFW&ROXPQ02%,/(180B&2/801
P7H[W9LHZ+RPHVHW7H[WP&XUVRUJHW6WULQJ&RQWDFW&ROXPQ+20(180B&2/801
P7H[W9LHZ$GGUHVVVHW7H[WP&XUVRUJHW6WULQJ&RQWDFW&ROXPQ$''5(66B&2/801
P7H[W9LHZ(PDLOVHW7H[WP&XUVRUJHW6WULQJ&RQWDFW&ROXPQ(0$,/B&2/801
P7H[W9LHZ%ORJVHW7H[WP&XUVRUJHW6WULQJ&RQWDFW&ROXPQ%/2*B&2/801
`
HOVH^
VHW7LWOH䫭䇃ֵᙃ
`
`
䭓ᣝᶤϾ㘨㋏Ҏᔍߎ㦰ऩˈ䗝ᢽᶹⳟ㘨㋏Ҏ䏇䕀ࠄ 9LHZ&RQWDFW$FWLYLW\ˈᰒ⼎᠔⚍ߏ
ⱘ㘨㋏ҎֵᙃDŽབ ᠔⼎DŽ
ᓔྟ
ਃࡼ⬠䴶
ᰒ⼎߫㸼
⏏ࡴ㦰ऩ
߯ᓎᔍߎ㦰ऩ
㒧ᴳ
5
ᶹⳟ㘨㋏Ҏ
ᶹⳟ㘨㋏ҎֵᙃᯊӮᠻ㸠ϟ߫ҷⷕDŽ
SXEOLFFODVV&RQWDFW&ROXPQLPSOHPHQWV%DVH&ROXPQV^
SXEOLF&RQWDFW&ROXPQ
^
`
߫ৡ
SXEOLFVWDWLFILQDO6WULQJ1$0( QDPH
ྦྷৡ
SXEOLFVWDWLFILQDO6WULQJ02%,/(180 PRELOH1XPEHU⿏ࡼ⬉䆱
SXEOLFVWDWLFILQDO6WULQJ+20(180 KRPH1XPEHU ᆊᒁ⬉䆱
SXEOLFVWDWLFILQDO6WULQJ$''5(66 DGGUHVV
ഄഔ
SXEOLFVWDWLFILQDO6WULQJ(0$,/ HPDLO
䚂ㆅ
SXEOLFVWDWLFILQDO6WULQJ%/2* EORJ
मᅶ
߫㋶ᓩؐ
SXEOLFVWDWLFILQDOLQWB,'B&2/801
SXEOLFVWDWLFILQDOLQW1$0(B&2/801
SXEOLFVWDWLFILQDOLQW02%,/(180B&2/801
SXEOLFVWDWLFILQDOLQW+20(180B&2/801
SXEOLFVWDWLFILQDOLQW$''5(66B&2/801
SXEOLFVWDWLFILQDOLQW(0$,/B&2/801
SXEOLFVWDWLFILQDOLQW%/2*B&2/801
ᶹ䆶㒧ᵰ
SXEOLFVWDWLFILQDO6WULQJ>@352-(&7,21 ^
B,'
1$0(
02%,/(180
+20(180
$''5(66
(0$,/
%/2*
`
ᓔྟ
㘨㋏Ҏ߫㸼
䭓ᣝᶤϾ㘨㋏Ҏ
ᔍߎ㦰ऩ
ᶹⳟ㘨㋏Ҏ
䏇 䕀 ࠄ ᶹ ⳟ 㘨 ㋏
Ҏ
Activity
㒧ᴳ