目录
一、项目演示
二、项目测试环境
三、项目详情
四、完整的项目源码
一、项目演示
网络资源模板--基于Android studio 通讯录
二、项目测试环境
三、项目详情
首页
`MainActivity` 类是一个 Android 地址簿应用的核心部分,负责管理联系人列表的显示、搜索和添加功能。以下是其主要功能的总结:
1. **数据库初始化**:在 `onCreate` 方法中,应用程序初始化数据库,通过 `DBUntil` 类获取可写数据库实例。
2. **联系人列表显示**:
- 通过 `PeoDao.getAllPeo()` 方法获取所有联系人,并使用 `ListView` 显示。
- 如果联系人列表为空,`ListView` 不显示任何内容。
- 联系人按照首字母进行排序,特殊字符(如 `#`)排在最后。
3. **添加新联系人**:应用提供了一个 `FloatingActionButton`,用户点击后会跳转到 `AddActivity` 界面,允许用户添加新联系人。
4. **实时搜索功能**:
- 应用支持通过输入框(`EditText`)进行搜索,用户输入的内容会实时更新联系人列表。
- 使用 `TextWatcher` 监听输入框内容变化,在每次文本变化后,更新 `ListView` 的适配器以显示匹配的联系人。
- 如果输入框为空,则重新加载所有联系人。
5. **适配器**:使用自定义的 `PeoAdapter` 来管理 `ListView` 中联系人的显示。
整体来说,`MainActivity` 类提供了一个基本的联系人管理界面,支持添加、显示和搜索联系人。
if (result.size() == 0) {listView.setAdapter((ListAdapter) null);} else {result.sort(new Comparator<PeoBean>() {public int compare(PeoBean peoBean, PeoBean t1) {if (peoBean.getBeginZ().equals("#") || t1.getBeginZ().equals("#")) {return 1;}return peoBean.getBeginZ().compareTo(t1.getBeginZ());}});listView.setAdapter((ListAdapter) new PeoAdapter(this, result));}((FloatingActionButton) findViewById(R.id.add)).setOnClickListener(v -> {MainActivity.this.startActivity(new Intent(MainActivity.this, AddActivity.class));});
添加页面
`AddActivity` 类是一个用于添加新联系人的界面,具备输入和保存联系人的功能。以下是其主要功能的总结:
1. **界面布局**:在 `onCreate` 方法中,设置活动的视图布局为 `activity_add`,并初始化 UI 组件。
2. **工具栏设置**:工具栏 (`Toolbar`) 被设置为点击后结束当前活动,返回到上一界面。
3. **输入字段**:
- 提供 `TextView` 组件用于输入姓名、手机号和备注。
- 使用两个 `RadioButton` 选择性别,默认选择“男”。
4. **添加联系人按钮**:
- 通过 `Button` 组件触发保存联系人操作。
- 输入字段的值在点击按钮时被验证:
- 如果姓名、手机号或备注为空,显示相应的提示信息(使用 `Toast`)。
- 如果所有字段均填写,获取性别信息并调用 `PeoDao.savePeo()` 方法将联系人信息保存到数据库。
5. **成功提示**:在成功添加联系人后,使用 `Toast` 提示用户“添加成功”。
总之,`AddActivity` 提供了一个简洁的用户界面,用于输入和保存新的联系人信息,并通过输入验证确保数据完整性。
((Button) findViewById(R.id.add_button)).setOnClickListener(v -> {String nameT = name.getText().toString().trim();String phoneT = phone.getText().toString().trim();String bzT = bz.getText().toString().trim();if (nameT.isEmpty()) {Toast.makeText(AddActivity.this, "请输入姓名", Toast.LENGTH_SHORT).show();} else if (phoneT.isEmpty()) {Toast.makeText(AddActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();} else if (bzT.isEmpty()) {Toast.makeText(AddActivity.this, "请输入备注", Toast.LENGTH_SHORT).show();} else {String sex = "女";if (man.isChecked()) {sex = "男";}PeoDao.savePeo(nameT, phoneT, sex, bzT);Toast.makeText(AddActivity.this, "添加成功", Toast.LENGTH_SHORT).show();}});
详情页
`DetailsActivity` 类用于显示和管理特定联系人的详细信息,包括拨打电话、发送短信、更新和删除联系人。以下是其主要功能的总结:
1. **界面布局**:在 `onCreate` 方法中,设置活动的视图布局为 `activity_details`,并获取传递的联系人 ID。
2. **显示联系人信息**:
- 通过 `PeoDao.getOnePeo(id)` 方法获取联系人信息,并在界面上显示姓名、手机号、性别和备注。
- 根据性别显示相应的头像(男性或女性)。
3. **拨打电话**:
- 为拨打电话的按钮设置点击监听器,检查是否有拨打电话的权限。
- 如果有权限,调用 `makePhoneCall()` 方法执行电话拨打;如果没有权限,申请权限。
4. **发送短信**:
- 提供按钮以发送短信,点击后创建一个短信发送的意图,并传入目标手机号。
5. **返回和删除功能**:
- 提供返回按钮,点击后返回主界面(`MainActivity`)。
- 提供删除按钮,点击后调用 `PeoDao.delPeo(id)` 删除联系人,并显示删除成功的提示,然后返回主界面。
6. **更新联系人**:
- 提供更新按钮,点击后跳转到 `UpdateActivity` 并传递联系人 ID,以便更新其信息。
总之,`DetailsActivity` 类为用户提供了一个全面的界面来查看和管理单个联系人的详细信息,支持拨打电话、发送短信、更新和删除操作。
((Button) findViewById(R.id.de_da_message)).setOnClickListener(v -> {Intent intent = new Intent("android.intent.action.SENDTO");intent.setData(Uri.parse("smsto:" + Uri.encode(num.getText().toString().trim())));DetailsActivity.this.startActivity(intent);});((Button) findViewById(R.id.de_back)).setOnClickListener(v -> {DetailsActivity.this.startActivity(new Intent(DetailsActivity.this, MainActivity.class));});((Button) findViewById(R.id.de_del)).setOnClickListener(v -> {PeoDao.delPeo(id);Toast.makeText(DetailsActivity.this, "删除成功", Toast.LENGTH_SHORT).show();DetailsActivity.this.startActivity(new Intent(DetailsActivity.this, MainActivity.class));});((Button) findViewById(R.id.de_up)).setOnClickListener(v -> {Intent intent = new Intent(DetailsActivity.this, UpdateActivity.class);intent.putExtra("id", id);DetailsActivity.this.startActivity(intent);});
修改页面
`UpdateActivity` 类用于更新已存在联系人的信息,提供了用户界面来修改姓名、手机号、性别和备注。以下是其主要功能的总结:
1. **界面布局**:在 `onCreate` 方法中,设置活动的视图布局为 `activity_update`,并初始化 UI 组件。
2. **工具栏设置**:点击工具栏可以结束当前活动,返回上一个界面。
3. **获取和显示现有信息**:
- 通过 `getIntent().getStringExtra("id")` 获取联系人 ID,并通过 `PeoDao.getOnePeo(id)` 获取对应的联系人信息。
- 将现有信息填充到相应的输入字段(姓名、手机号、性别和备注)。
4. **性别选择**:根据获取的性别信息设置相应的 `RadioButton` 为选中状态(男或女)。
5. **更新按钮**:
- 为更新按钮设置点击监听器,在点击时进行输入验证:
- 检查姓名、手机号和备注是否为空,并通过 `Toast` 提示用户。
- 如果输入有效,获取性别信息,并调用 `PeoDao.updatePeo()` 方法更新联系人信息。
6. **成功提示**:在更新成功后,使用 `Toast` 提示用户“更改成功”。
总之,`UpdateActivity` 提供了一个简洁的用户界面,使用户能够方便地更新联系人的详细信息,并通过输入验证确保数据的完整性。
((Button) findViewById(R.id.up_button)).setOnClickListener(v -> {String nameT = name.getText().toString().trim();String phoneT = phone.getText().toString().trim();String bzT = bz.getText().toString().trim();if (nameT.isEmpty()) {Toast.makeText(UpdateActivity.this, "请输入姓名", Toast.LENGTH_SHORT).show();} else if (phoneT.isEmpty()) {Toast.makeText(UpdateActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();} else if (bzT.isEmpty()) {Toast.makeText(UpdateActivity.this, "请输入备注", Toast.LENGTH_SHORT).show();} else {String sex = "女";if (man.isChecked()) {sex = "男";}PeoDao.updatePeo(nameT, phoneT, sex, bzT, id);Toast.makeText(UpdateActivity.this, "更改成功", Toast.LENGTH_SHORT).show();}});
拨打电话和发短信效果页面
四、完整的项目源码
👇👇👇👇👇快捷获取方式👇👇👇👇👇