Android开发实践:好友管理作业解答

需积分: 0 1 下载量 157 浏览量 更新于2024-06-30 收藏 4.46MB PDF 举报
"实践作业2解答1 - Android开发基础 - 吴昊 - 杭州电子科技大学信息工程学院" 这篇内容是关于Android开发基础的实践作业解答,主要涉及好友管理功能的实现。作业要求开发者运用已学知识,完成一个具有添加好友功能的应用。以下是详细的知识点解释: 1. **右上角菜单的添加好友功能**: 在Android应用中,右上角的菜单通常通过在`action_bar`或`toolbar`中设置`overflow`菜单来实现。开发者需要在`MainActivity`中添加相应的菜单项,并为点击事件设置监听器,以便触发添加好友界面。 2. **日期选择对话框**: 当用户点击生日按钮时,需要弹出一个日期选择器。这可以通过使用`DatePickerDialog`或者`MaterialDatePicker`来实现,这两个组件可以让用户选择日期,然后将所选日期赋值给对应的`Date`对象。 3. **取消添加功能**: 添加好友界面提供两种方式取消添加:点击左上角的返回按钮(通常是Toolbar上的返回图标)或者点击取消按钮。这两种方式都需要在对应的`OnClickListener`中清除当前输入的信息,并关闭当前活动(Activity)。 4. **多选爱好限制**: 用户可以选择0到3个爱好,这里需要用到复选框(CheckBox)。开发者需要创建一个`ArrayList`来存储用户的爱好选择,并在保存数据时检查其数量是否超过3个。 5. **自动计算年龄与星座**: 根据生日日期,应用需要自动计算用户的年龄,可以使用`ChronoUnit.YEARS.between()`方法来计算两个日期之间的年份差。星座计算则需要根据公历的月份和日期来确定。 6. **单例模式创建FriendLab类**: FriendLab作为一个数据管理类,使用单例模式可以确保全局范围内只有一个实例,方便在多个Activity之间共享数据。单例通常通过私有构造函数、静态工厂方法和一个内部静态类来实现。 7. **界面布局文件**: 需要创建`activity_main.xml`和`list_item_friend.xml`布局文件。前者用于主界面,可能包含一个RecyclerView来展示好友列表;后者则是列表项的布局,显示每个好友的基本信息。 8. **RecyclerView及Adapter**: RecyclerView是Android中的一个高效列表视图,它需要一个ViewHolder类来缓存视图组件,以及一个Adapter来填充数据。开发者需要实现`onCreateViewHolder()`, `onBindViewHolder()`, 和`getItemCount()`等方法。 9. **菜单制作**: 菜单图标可以通过图形工具如Android Studio的Asset Studio创建,然后在`menu`目录下创建XML文件定义菜单项。在`MainActivity`的`onCreateOptionsMenu()`方法中加载菜单。 10. **新增界面布局**: 使用`add_activity.xml`创建新增好友的界面,包括输入姓名、性别、生日等字段,以及复选框选择爱好。 11. **AddActivity的代码实现**: 在`AddActivity`的`onCreate()`中,动态生成复选框并绑定爱好数据。当用户点击保存按钮时,收集数据并创建新的`Friend`对象。如果点击取消或返回,不保存数据。 12. **活动跳转**: 使用`Intent`对象在`MainActivity`和`AddActivity`之间进行跳转,可以通过`startActivityForResult()`启动`AddActivity`,以便在返回时携带结果。 13. **数据保存策略**: 新增的好友对象通过单例的`FriendLab`类进行管理。点击保存按钮时,将新对象添加到列表中;点击取消或返回,不进行添加操作。这种方法避免了未保存的数据留在内存中。 通过以上步骤,开发者可以构建一个简单的Android应用,实现添加好友、选择爱好、计算年龄和星座等功能,同时学习到Android界面设计、数据管理、用户交互等核心概念。