Android开发,待办事项提醒App的设计与实现(个人中心页)

server/2025/1/23 0:47:43/

文章目录

    • 1. 编写UI布局
    • 2. 实现逻辑
    • 3. 运行效果图
    • 3. 关于作者其它项目视频教程介绍

  1. Android开发,待办事项提醒App的设计与实现: https://blog.csdn.net/jky_yihuangxing/article/details/145277956?spm=1001.2014.3001.5501

1. 编写UI布局

  1. fragment_mine.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#fefefe"android:orientation="vertical"><androidx.appcompat.widget.Toolbarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/purple_200"app:title="个人中心"app:titleTextColor="@color/white" /><androidx.core.widget.NestedScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><androidx.cardview.widget.CardViewandroid:layout_width="match_parent"android:layout_height="140dp"app:cardElevation="0dp"><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/gradient_background5"android:gravity="center_vertical"><androidx.cardview.widget.CardViewandroid:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="16dp"app:cardCornerRadius="40dp"app:cardElevation="0dp"><ImageViewandroid:id="@+id/avatar"android:layout_width="match_parent"android:layout_height="match_parent"android:scaleType="centerCrop"android:src="@mipmap/ic_avatar" /></androidx.cardview.widget.CardView><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="vertical"><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"><TextViewandroid:id="@+id/tv_username"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="登录/注册"android:textColor="@color/white"android:textSize="16sp"android:textStyle="bold" /></androidx.appcompat.widget.LinearLayoutCompat><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="4dp"android:gravity="center_vertical"><TextViewandroid:id="@+id/tv_nickname"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这个家伙很懒,什么都没有留下~"android:textColor="@color/white"android:textSize="13sp" /></androidx.appcompat.widget.LinearLayoutCompat></androidx.appcompat.widget.LinearLayoutCompat></androidx.appcompat.widget.LinearLayoutCompat><TextViewandroid:id="@+id/btn_edit"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="right"android:layout_marginRight="10dp"android:drawableLeft="@drawable/ic_baseline_edit_24"android:gravity="center_vertical"android:textColor="@color/white"android:padding="4dp"android:text=" 编辑" /></androidx.cardview.widget.CardView><TextViewandroid:id="@+id/btn_edit_pwd"android:layout_width="match_parent"android:layout_height="46dp"android:drawableRight="@drawable/ic_baseline_keyboard_arrow_right_24"android:gravity="center_vertical"android:paddingLeft="10dp"android:paddingRight="10dp"android:text="修改密码"android:textColor="#444444" /><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="#f5f5f5" /><TextViewandroid:id="@+id/btn_clear"android:layout_width="match_parent"android:layout_height="46dp"android:drawableRight="@drawable/ic_baseline_keyboard_arrow_right_24"android:gravity="center_vertical"android:paddingLeft="10dp"android:paddingRight="10dp"android:text="清理缓存"android:textColor="#444444" /><androidx.cardview.widget.CardViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:backgroundTint="#f5f5f5"app:cardCornerRadius="10dp"app:cardElevation="0dp"><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/white"android:orientation="vertical"android:padding="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="常用服务"android:textColor="#333333" /><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="match_parent"android:layout_height="60dp"android:layout_marginTop="10dp"><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:layout_width="28dp"android:layout_height="28dp"android:src="@drawable/ic_baseline_headphones_24" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="官方客服"android:textColor="#666666"android:textSize="13sp" /></androidx.appcompat.widget.LinearLayoutCompat><Viewandroid:layout_width="1dp"android:layout_height="40dp"android:layout_gravity="center_vertical"android:background="#f5f5f5" /><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:layout_width="28dp"android:layout_height="28dp"android:src="@drawable/ic_baseline_shopping_bag_24" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="积分兑换"android:textColor="#666666"android:textSize="13sp" /></androidx.appcompat.widget.LinearLayoutCompat><Viewandroid:layout_width="1dp"android:layout_height="40dp"android:layout_gravity="center_vertical"android:background="#f5f5f5" /><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:layout_width="28dp"android:layout_height="28dp"android:src="@drawable/ic_baseline_help_outline_24" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="帮助中心"android:textColor="#666666"android:textSize="13sp" /></androidx.appcompat.widget.LinearLayoutCompat><Viewandroid:layout_width="1dp"android:layout_height="40dp"android:layout_gravity="center_vertical"android:background="#f5f5f5" /><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:layout_width="28dp"android:layout_height="28dp"android:src="@drawable/ic_baseline_settings_24" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="设置"android:textColor="#666666"android:textSize="13sp" /></androidx.appcompat.widget.LinearLayoutCompat></androidx.appcompat.widget.LinearLayoutCompat></androidx.appcompat.widget.LinearLayoutCompat></androidx.cardview.widget.CardView><TextViewandroid:layout_width="match_parent"android:layout_height="46dp"android:drawableRight="@drawable/ic_baseline_keyboard_arrow_right_24"android:gravity="center_vertical"android:paddingLeft="10dp"android:paddingRight="10dp"android:text="意见反馈"android:textColor="#444444" /><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="#f5f5f5" /><TextViewandroid:layout_width="match_parent"android:layout_height="46dp"android:drawableRight="@drawable/ic_baseline_keyboard_arrow_right_24"android:gravity="center_vertical"android:paddingLeft="10dp"android:paddingRight="10dp"android:text="系统设置"android:textColor="#444444" /><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="#f5f5f5" /><TextViewandroid:id="@+id/btn_about"android:layout_width="match_parent"android:layout_height="46dp"android:drawableRight="@drawable/ic_baseline_keyboard_arrow_right_24"android:gravity="center_vertical"android:paddingLeft="10dp"android:paddingRight="10dp"android:text="关于APP"android:textColor="#444444" /><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="#f5f5f5" /><TextViewandroid:id="@+id/btn_exit"android:layout_width="match_parent"android:layout_height="50dp"android:layout_marginTop="50dp"android:background="#f5f5f5"android:gravity="center"android:text="退出登录"android:textStyle="bold" /></androidx.appcompat.widget.LinearLayoutCompat></androidx.core.widget.NestedScrollView></androidx.appcompat.widget.LinearLayoutCompat>

2. 实现逻辑

MineFragment.java

  1. 加载布局
    @Overrideprotected int getLayoutResId() {return R.layout.fragment_mine;}
  1. 初始化控件
    @Overrideprotected void initView() {//初始化控件tv_username = rootView.findViewById(R.id.tv_username);tv_nickname = rootView.findViewById(R.id.tv_nickname);}
  1. 事件监听
@Overrideprotected void setListener() {//关于approotView.findViewById(R.id.btn_about).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startActivity(new Intent(getActivity(), AboutActivity.class));}});//清理缓存rootView.findViewById(R.id.btn_clear).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {showToast("清理成功~");}});//修改密码rootView.findViewById(R.id.btn_edit_pwd).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(getActivity(), UpdatePwdActivity.class);startActivityForResult(intent, 2000);}});//编辑用户信息rootView.findViewById(R.id.btn_edit).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(getActivity(), EditUserInfoActivity.class);intent.putExtra("userInfo", UserInfo.getUserInfo());startActivityForResult(intent, 3000);}});//退出登录rootView.findViewById(R.id.btn_exit).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (UserInfo.getUserInfo() != null) {new AlertDialog.Builder(getActivity()).setTitle("操作").setMessage("确定要退出登录吗?").setNegativeButton("取消", null).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {if (null != getActivity()) {UserInfo.setUserInfo(null);startActivity(new Intent(getActivity(), LoginActivity.class));showToast("退出登录成功~");}}}).show();} else {showToast("请先登录");}}});}
  1. 初始化数据,获取登录用户信息
    @Overrideprotected void initData() {//设置用户信息setUserInfo();}/*** 设置用户信息*/private void setUserInfo() {UserInfo userInfo = UserInfo.getUserInfo();if (null != userInfo) {tv_username.setText(userInfo.getUsername());tv_nickname.setText(userInfo.getNickname());}}
  1. 页面回传刷新用户信息
  @Overridepublic void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == 2000 && null != getActivity()) {Intent intent = new Intent(getActivity(), LoginActivity.class);startActivity(intent);getActivity().finish();} else if (resultCode == 3000 && null != getActivity()) {//重新获取用户数据UserInfo.setUserInfo(UserDbHelper.getInstance(getActivity()).login(UserInfo.getUserInfo().getUsername()));setUserInfo();}}

温馨提示:代码中涉及了BaseFragment的封装和用户登录注册UserDbHelper数据库的实现,这里不展开详情说,可以关注作者视频教程,最后给到教程视频地址

3. 运行效果图

请添加图片描述

3. 关于作者其它项目视频教程介绍

  1. Android新闻资讯app实战:https://www.bilibili.com/video/BV1CA1vYoEad/?vd_source=984bb03f768809c7d33f20179343d8c8
  2. Androidstudio开发购物商城实战:https://www.bilibili.com/video/BV1PjHfeXE8U/?vd_source=984bb03f768809c7d33f20179343d8c8
  3. Android开发备忘录记事本实战:https://www.bilibili.com/video/BV1FJ4m1u76G?vd_source=984bb03f768809c7d33f20179343d8c8&spm_id_from=333.788.videopod.sections
  4. Androidstudio底部导航栏实现:https://www.bilibili.com/video/BV1XB4y1d7et/?spm_id_from=333.337.search-card.all.click&vd_source=984bb03f768809c7d33f20179343d8c8
  5. Android使用TabLayout+ViewPager2实现左右滑动切换:https://www.bilibili.com/video/BV1Mz4y1c7eX/?spm_id_from=333.337.search-card.all.click&vd_source=984bb03f768809c7d33f20179343d8c8
  6. 为什么要封装BaseActivity?: https://www.bilibili.com/video/BV11S411A7R5/?vd_source=984bb03f768809c7d33f20179343d8c8
  7. 为什么要封装BaseFragment?:https://www.bilibili.com/video/BV1Um421G7yC/?vd_source=984bb03f768809c7d33f20179343d8c8

http://www.ppmy.cn/server/160606.html

相关文章

Java后端Controller参数校验的一些干货及问题~

你们好,我是金金金。 场景 先看如下一张图,这是一个控制器里面的一个方法,第一眼是不是就感觉代码量非常多?而且随着参数越来越多 你则需要写n个if else来完成校验,属实是麻烦而且不够优雅 JSR303校验 仔细认真看,更容易理解吸收,想想什么层面需要做校验呢? 前端请求后…

【漫话机器学习系列】053.梯度爆炸(Exploding Gradient Problem)

梯度爆炸&#xff08;Exploding Gradient Problem&#xff09; 定义 梯度爆炸是指在深度神经网络的训练过程中&#xff0c;由于梯度的值在反向传播时不断累积&#xff0c;导致梯度变得非常大&#xff0c;以至于模型无法正常学习。这种现象在深层网络或循环神经网络&#xff0…

Hadoop集群搭建

1. 安装并配置虚拟机 这里基于VmWare来去构建三台虚拟机 我已经有了一台模板虚拟机&#xff0c;所以基于该模板虚拟机进行完整克隆得到三台机器&#xff0c;分别是hadoop1、hadoop2、hadoop3 修改主机名称 # hadoop1的主机名称修改为hadoop1&#xff0c;以此类推 vim /etc/ho…

4.C++中的循环语句

C中的循环语句 for 循环 for 循环是一种最常用的循环结构&#xff0c;通常用于已知循环次数的情况。 基本语法&#xff1a; for (初始化表达式; 条件表达式; 更新表达式) {// 循环体&#xff0c;当条件表达式为真时执行 }例如&#xff1a; #include <iostream> usin…

数据库存储上下标符号,sqlserver 2008r2,dm8

sqlserver 2008r2&#xff1a; 数据类型需要用nvarchar插入数据时字符串前需要用N create table test( col1 varchar(50), col2 nvarchar(50) ) insert into test(col1,col2) values(U⁴⁵⁶⁷⁸⁹⁰D₁₂₃₄₅₆₇₈₉₀,U⁴⁵⁶⁷⁸⁹⁰D₁₂₃₄₅₆₇₈₉₀) insert into…

如何用AI智能生成PPT,提升工作效率和创意

如何用AI智能生成PPT&#xff0c;提升工作效率和创意&#xff01;在这个信息爆炸的时代&#xff0c;我们每个人的时间都变得尤为珍贵&#xff0c;尤其是在繁忙的工作中&#xff0c;如何更高效地完成任务变得至关重要。制作PPT往往让人既头痛又心烦。面对大量的内容整理和设计&a…

【Vim Masterclass 笔记24】S10L43 + L44:同步练习10 —— 基于 Vim 缓冲区的各类基础操作练习(含点评课)

文章目录 S10L43 Exercise 12 - Vim Buffers1 训练目标2 操作指令2.1. 打开 buf* 文件2.2. 查看缓冲区 View the buffers2.3. 切换缓冲区 Switch buffers2.4. 同时编辑多个缓冲区 Edit multiple buffers at once2.5. 缓冲区的增删操作 Add and delete buffers2.6. 练习 Vim 内置…

K8S中Pod控制器之CronJob(CJ)控制器

CronJob 控制器是 Kubernetes 中用于周期性执行任务的一种控制器&#xff0c;它基于 Job 控制器来创建和管理作业。以下是 CronJob 的一些关键特点&#xff1a; 周期性调度&#xff1a;CronJob 允许您定义一个基于时间的调度&#xff0c;类似于 Linux 的 cron 工具&#xff0c;…