"Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结" 在Android开发中,与用户交互是应用程序的核心部分。本实例讲解了如何实现一系列常见的功能,包括读取手机联系人、拨打电话、发送短信以及处理长按菜单操作。下面将详细阐述这些功能的实现步骤。 1. 读取手机联系人 要读取手机中的联系人数据,你需要获取到`READ_CONTACTS`权限。在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_CONTACTS" /> ``` 然后,你可以使用ContentResolver查询ContactsContract类提供的内容提供者来获取联系人信息。创建一个Cursor并遍历其结果,将联系人信息填充到ListView中。例如: ```java ContentResolver resolver = getContentResolver(); Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); // 遍历Cursor获取联系人数据 while (cursor.moveToNext()) { String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // 创建Contact对象并添加到列表 Contact contact = new Contact(displayName, number); contactsList.add(contact); } ``` 2. 显示联系人列表 布局文件main.xml中,使用ListView控件展示联系人。每个列表项可以通过自定义的list_item.xml布局文件定义,包含联系人姓名和电话号码等信息。例如,list_item.xml可能包含一个ImageView和两个TextView,分别用于显示联系人头像和姓名及电话。 3. 拨打电话 当用户点击ListView中的联系人时,可以启动一个Intent来拨打电话。首先,创建一个拨打电话的Intent,并设置ACTION_CALL动作和电话号码作为数据,然后使用startActivity()启动Intent: ```java Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:" + number)); startActivity(callIntent); ``` 4. 发送短信 同样,发送短信也需要创建一个Intent,这次是ACTION_SENDTO动作,指定SMS/MMS的scheme和收件人的电话号码: ```java Intent sendIntent = new Intent(Intent.ACTION_SENDTO); sendIntent.setData(Uri.parse("smsto:" + number)); sendIntent.putExtra("sms_body", message); startActivity(sendIntent); ``` 5. 长按菜单操作 为了实现长按ListView项弹出菜单,需要为ListView设置OnItemLongClickListener。当用户长按时,可以创建并显示一个PopupMenu,包含你想要的菜单项。例如,可以添加“编辑”和“删除”选项: ```java listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { PopupMenu popupMenu = new PopupMenu(context, view); popupMenu.getMenuInflater().inflate(R.menu.long_press_menu, popupMenu.getMenu()); popupMenu.show(); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.edit_contact: // 编辑联系人逻辑 break; case R.id.delete_contact: // 删除联系人逻辑 break; } return true; } }); return true; } }); ``` 以上就是Android编程中实现读取手机联系人、拨号、发送短信和长按菜单操作的基本步骤。在实际应用中,你可能还需要考虑权限请求、错误处理、UI优化等方面的问题。通过这些基本功能的实现,你可以构建出更加丰富和实用的Android应用程序。
- 粉丝: 3
- 资源: 927
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解