基于android手机通讯录的设计与实现毕业设计(6)

2019-05-18 13:21

滁州学院毕业论文

return false;}});}}

5.2.5 Menu底部菜单框功能

下面我们将介绍menu的触发方式,通过对menu的介绍,我们将了解menu功能设计,对menu键的使用首先要建立menu菜单,为每个菜单选项绑定了一个图标和文字,代码如下底部菜单如图5-3所示。

String[] bottom_menu_itemName = { \增加\查找\删除\菜单\退出\ String fileName;

int[] bottom_menu_itemSource = { R.drawable.menu_new_user, R.drawable.menu_search, R.drawable.menu_delete,

R.drawable.controlbar_showtype_list, R.drawable.menu_exit, };//选择功能图片 响应menu点击事件时设置底部菜单是否可见,

public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_MENU) {//如果点击menu键 loadBottomMenu();//载入menu功能

if(bottomMenuGrid.getVisibility() == View.VISIBLE) {//设置可视

if(searchLinearout != null && searchLinearout.getVisibility() == View.VISIBLE) {//如果选择不为空且视图为可视

searchLinearout.setVisibility(View.GONE);//设置可视视图不显示} bottomMenuGrid.setVisibility(View.GONE);//设置底部视图不显示 } else {

bottomMenuGrid.setVisibility(View.VISIBLE);//设置底部视图为可见 }}

return super.onKeyDown(keyCode, event);//返回一个点击的结果 }

图5-3 menu底部菜单

再监听底部菜单选项,代码如下:

bottomMenuGrid.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) {

22

滁州学院毕业论文

switch (arg2) { case 0: {/*增加*/} case 1: {/*查找*/} case 2: {/*删除*/} case 3: {/*菜单*/} case 4: {/*退出*/}

5.2.6 通信功能

下面的程序定义了用户打电话,发邮件,发短信的功能,如下的代码主要是运用了android操作系统自定义接口,运用这些接口可以实现用户的打电话、发短信、发邮件的功能。

首先定义了menu键,为menu添加了三个选项,并且为每一个item设置图标功,通讯功能如图5-4。

图5-4 通信功能界面

当建立好menu键以后为每一个MenuItem添加事件,添加了三个事件,代码功能如下: public boolean onMenuItemSelected(int featureId, MenuItem item) { //设置menu键选择功能

switch(item.getItemId()){通过switch选择不同的id case Menu.FIRST: { //将状态设置为打电话

status = Intent.ACTION_CALL; if(callData == null) {//加载可用的号码

23

滁州学院毕业论文

loadAvailableCallData();//加载电话号码 }if(callData.length == 0) {//提示没有可用的号码

Toast.makeText(this, \没有可用的号码!\ } else if(callData.length == 1) {

//如果之有一个可用的号码,这直接使用这个号码拨出

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse(\//设置一个新的intent对象

startActivity(intent);//开始活动事件 } else {

//如果有2个或者2个以上号码,弹出号码选择对话框 initNumChooseDialog();//选择号码 }break;//跳出 }

case Menu.FIRST+1: {

status = Intent.ACTION_SENDTO; //将状态设置为发短信 if(callData == null) {//如果号码为空 loadAvailableCallData();//载入号码

}if(callData.length == 0) {//提示没有可用的号码

Toast.makeText(this, \没有可用的号码!\ } else if(callData.length == 1) {

//如果之后又一个可用的号码,这直接使用这个号码拨出

Intent intent = new Intent(Intent.ACTION_SENDTO,Uri.parse(\设置一个新的intent对象

startActivity(intent); //开始活动事件 } else {

initNumChooseDialog();} break;}

//初始化号码

case Menu.FIRST+2: { if(user.email.equals(\

Toast.makeText(this, \没有可用的邮箱!\ } else {

Uri emailUri = Uri.parse(\设置uri为发送邮件的uri Intent intent = new Intent(Intent.ACTION_SENDTO, emailUri); //设置一个新的intent对象

24

滁州学院毕业论文

startActivity(intent);//开始活动 }break;//退出}}

return super.onMenuItemSelected(featureId, item); //返回menu选择功能}

5.2.7显示所有、删除所有及备份功能

在bottom_menu 中菜单功能键中包含有显示所有、删除所有、以及备份SD卡功能,显示所有与联系人列表界面的思路一致,创建一个数据库帮助类从数据库中获得所有用户的信息放到list,通过setAdapter将listview与adapter相结合展示出来。删除所有是数据库中deleteAll这个方法将数据全部删除。备份文件时先AlertDialog.Builder来提示是否需要备份记录到SD卡,如果点击确定就通过helper.backupData(privacy);在数据库中执行备份的方法。详细代码如下。显示所有,删除所有,备份功能如图5-5。

mainMenuGrid.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {switch(arg2){ case 0:{

DBHelper helper = new DBHelper(Main.this); list = helper.getAllUser(privacy);

adapter = new SimpleAdapter( Main.this, list,R.layout.listitem, new String[]{\

new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone}); lv.setAdapter(adapter);//显示所有数据 mainMenuDialog.dismiss(); break;} case 1:{

AlertDialog.Builder builder = new AlertDialog.Builder(Main.this); confirmDialog = builder.create(); builder.setTitle(\是否删除所有!?\

builder.setPositiveButton(\确定\public void onClick(DialogInterface dialog, int which) { DBHelper helper = new DBHelper(Main.this); helper.deleteAll(0);

list = helper.getAllUser(privacy); adapter = new SimpleAdapter(Main.this,

R.layout.listitem,

25

list,

滁州学院毕业论文

new String[]{\

new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone}); lv.setAdapter(adapter);//显示所有数据 mainMenuDialog.dismiss();}});

builder.setNegativeButton(\取消\new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {confirmDialog.dismiss(); builder.create().show(); break; case 2:{

mainMenuDialog.dismiss(); new AlertDialog.Builder(Main.this) .setTitle(\是否需要备份记录到SD卡?\

.setPositiveButton(\确定\ public void onClick(DialogInterface dialog, int which) { LayoutInflater li = LayoutInflater.from(Main.this);

View backup_view = li.inflate(R.layout.backup_progress, null); progressDialog = new AlertDialog.Builder(Main.this) .setTitle(\备份正在进行中...\ .setView(backup_view) .create();

progressDialog.show();

DBHelper helper = new DBHelper(Main.this); helper.backupData(privacy);

ProgressBar bar = (ProgressBar) backup_view.findViewById(R.id.pb_backup); Button btn_backup_ok = (Button)backup_view.findViewById(R.id.btn_backuup_ok); bar.setMax(list.size()); for(int i=0;i<=list.size();i++) { bar.setProgress(i);

}

}

}});

progressDialog.setTitle(\备份完成!一共 \条记录\ btn_backup_ok.setVisibility(View.VISIBLE);

btn_backup_ok.setOnClickListener(new OnClickListener() { public void onClick(View v) { progressDialog.dismiss();

26


基于android手机通讯录的设计与实现毕业设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:原发性醛固酮增多症功能诊断试验可靠性分析-第三军医大学学报

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: