1.实现修改密码界面,主要是让用户在必要时修改自己的原始密码,从而保证用户信息的安全性。
2.界面效果如下:效果如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_modify_psw"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="@drawable/register_bg"tools:context="itcast.cn.boxuegu.activity.ModifyPswActivity"><include layout="@layout/main_title_bar"/><EditTextandroid:id="@+id/et_original_psw"android:layout_width="fill_parent"android:layout_height="48dp"android:layout_gravity="center_horizontal"android:layout_marginLeft="35dp"android:layout_marginRight="35dp"android:layout_marginTop="35dp"android:background="@drawable/register_user_name_bg"android:drawableLeft="@drawable/psw_icon"android:drawablePadding="10dp"android:gravity="center_vertical"android:hint="请输入原始密码"android:inputType="textPassword"android:paddingLeft="8dp"android:textColor="#000000"android:textColorHint="#a3a3a3"android:textSize="14sp"/><EditTextandroid:id="@+id/et_new_psw"android:layout_width="fill_parent"android:layout_height="48dp"android:layout_gravity="center_horizontal"android:layout_marginLeft="35dp"android:layout_marginRight="35dp"android:background="@drawable/register_user_name_bg"android:drawableLeft="@drawable/psw_icon"android:drawablePadding="10dp"android:gravity="center_vertical"android:hint="请输入新密码"android:inputType="textPassword"android:paddingLeft="8dp"android:textColor="#000000"android:textColorHint="#a3a3a3"android:textSize="14sp"/><EditTextandroid:id="@+id/et_new_psw_again"android:layout_width="fill_parent"android:layout_height="48dp"android:layout_gravity="center_horizontal"android:layout_marginLeft="35dp"android:layout_marginRight="35dp"android:background="@drawable/register_user_name_bg"android:drawableLeft="@drawable/psw_icon"android:drawablePadding="10dp"android:gravity="center_vertical"android:hint="请再次输入新密码"android:inputType="textPassword"android:paddingLeft="8dp"android:textColor="#000000"android:textColorHint="#a3a3a3"android:textSize="14sp"/><Buttonandroid:id="@+id/btn_save"android:layout_width="fill_parent"android:layout_height="40dp"android:layout_marginLeft="35dp"android:layout_marginRight="35dp"android:layout_marginTop="15dp"android:layout_gravity="center_horizontal"android:background="@drawable/register_selector"android:text="保存"android:textColor="@android:color/white"android:textSize="18sp"/>
</LinearLayout>

3.在实现修改密码界面逻辑代码中,主要用于输入原始密码,新密码,再次修改新密码。输入的原始密码与从SharedPrefenences中读取的原始密码必须一致,输入的新密码与原始密码不能相同,再次输入的新密码与与输入的新密码必须相同。以上条件都符合之后,点击“保存”按钮提示设置成功,同时修改Sharedference中的原始密码。

package itcast.cn.boxuegu.activity;import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;import itcast.cn.boxuegu.R;
import itcast.cn.boxuegu.utils.AnalysisUtils;
import itcast.cn.boxuegu.utils.MD5Utils;public class ModifyPswActivity extends AppCompatActivity {private TextView tv_main_title;private TextView tv_back;private EditText et_original_psw;private EditText et_new_psw;private EditText et_new_psw_again;private Button btn_save;private String originalPsw;private String newPsw;private String newPswAgain;private String userName;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_modify_psw);init();userName = AnalysisUtils.readLoginUserName(this);}//  获取界面控件并处理相关控件的处理事件private void init() {tv_main_title = (TextView) findViewById(R.id.tv_main_title);tv_main_title.setText("修改密码");tv_back = (TextView) findViewById(R.id.tv_back);tv_back.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {ModifyPswActivity.this.finish();//关闭当前界面}});et_original_psw = (EditText) findViewById(R.id.et_original_psw);et_new_psw = (EditText) findViewById(R.id.et_new_psw);et_new_psw_again = (EditText) findViewById(R.id.et_new_psw_again);btn_save = (Button)  findViewById(R.id.btn_save);btn_save.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {getEditString();if (TextUtils.isEmpty(originalPsw)){Toast.makeText(ModifyPswActivity.this,"请输入原始密码",Toast.LENGTH_SHORT).show();}else if (!MD5Utils.md5(originalPsw).equals(readPsw())){Toast.makeText(ModifyPswActivity.this,"输入的密码与原始密码不一致",Toast.LENGTH_SHORT).show();}else if (MD5Utils.md5(newPsw).equals(readPsw())){Toast.makeText(ModifyPswActivity.this,"输入的新密码与原始密码不能一致",Toast.LENGTH_SHORT).show();}else if (TextUtils.isEmpty(newPsw)){Toast.makeText(ModifyPswActivity.this,"请输入新密码",Toast.LENGTH_SHORT).show();}else if (TextUtils.isEmpty(newPswAgain)){Toast.makeText(ModifyPswActivity.this,"请再次输入新密码",Toast.LENGTH_SHORT).show();}else if (!newPsw.equals(newPswAgain)){Toast.makeText(ModifyPswActivity.this,"两次输入的新密码不一致",Toast.LENGTH_SHORT).show();}else{Toast.makeText(ModifyPswActivity.this,"新密码设置成功",Toast.LENGTH_SHORT).show();//修改登录成功后保存在SharedPreferences中的密码modifyPsw(newPsw);Intent intent = new Intent(ModifyPswActivity.this,LoginActivity.class);startActivity(intent);ModifyPswActivity.this.finish();//关闭当前界面SettingActivity.instance.finish();//关闭设置界面}}});}//修改登录成功后保存在SharedPreferences中的密码private void modifyPsw(String newPsw) {String md5Psw = MD5Utils.md5(newPsw);//对新密码进行加密SharedPreferences sp = getSharedPreferences("loginInfo",MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();//获取编辑器editor.putString(userName,md5Psw);editor.commit();}//从SharedPreferences中读取原始密码private String readPsw() {SharedPreferences sp = getSharedPreferences("loginInfo",MODE_PRIVATE);String spPsw = sp.getString(userName,"");return spPsw;}//h获取控件上的字符串private void getEditString() {originalPsw = et_original_psw.getText().toString().trim();newPsw = et_new_psw.getText().toString().trim();newPswAgain = et_new_psw_again.getText().toString().trim();}
}

Android移动开发之【Android实战项目】DAY12-App实现修改密码相关推荐

  1. android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...

    本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1   Android Studio配置 2.1.1 ...

  2. android final参数,Android应用开发之Android Jetpack-Navigation 使用中参数的传递方法

    本文将带你了解Android应用开发之Android Jetpack-Navigation 使用中参数的传递方法,希望本文对大家学Android有所帮助. 由于使用了Navigation,导致Frag ...

  3. android中base64加密,Android应用开发之android自带Base64加密解密

    本文将带你了解Android应用开发之android自带Base64加密解密,希望本文对大家学Android有所帮助. android项目引用不到以下两个java类 import sun.misc.B ...

  4. 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...

    本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...

  5. Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...

    本文将带你了解Android应用开发之Android Activity栈管理  制定关闭某一个Activity,关闭所有Activit,希望本文对大家学Android有所帮助. 系统Api :打开新的 ...

  6. android图片保存形式,Android应用开发之Android ScrollView截图和图片保存到相册的方式...

    本文将带你了解Android应用开发之Android ScrollView截图和图片保存到相册的方式,希望本文对大家学Android有所帮助. 1.1首先来看你一种截取屏幕,这种代码有缺陷,只能截取一 ...

  7. android 开发art,Android应用开发之Android 系统启动原理(art 虚拟机)

    本文将带你了解Android应用开发之Android 系统启动原理(art 虚拟机),希望本文对大家学Android有所帮助. Android   系统启动原理(art 虚拟机) 一.虚拟机的启动 A ...

  8. android 电量详情,Android应用开发之Android 8.0 电池-)耗电详情获取方法

    本文将带你了解Android应用开发之Android 8.0 电池-)耗电详情获取方法,希望本文对大家学Android有所帮助. Android 8.0 电池-)耗电详情获取方法 主要介绍UI位置和基 ...

  9. android 接口实现方法,Android应用开发之Android 请求网络接口实现方法

    本文将带你了解Android应用开发之Android 请求网络接口实现方法,希望本文对大家学Android有所帮助. public   class Fragment01 extends Fragmen ...

  10. android显示通知图标大全,Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除...

    本文将带你了解Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除,希望本文对大家学Android有所帮助. android   桌面APP应用图标显示通知消息的数量 ...

最新文章

  1. 关于LateX的应用
  2. C语言实现常用数据结构——队列
  3. 解析 http 请求 header 错误_详解http报文(2)-web容器是如何解析http报文的
  4. 【Java】泛型中 extends 和 super 的区别?
  5. Python基础-map/reduce/filter
  6. Eclipse 自动注释的设置
  7. 一个平庸程序员的自白
  8. nginx在linux下是服务吗,[Linux]如何给Nginx添加服务
  9. Java中的证书透明度验证
  10. 使用Docker容器和Java EE进行持续交付
  11. org.apache.jasper.JasperException: Unable to compile class for JSP:
  12. 卢伟冰再怼荣耀9X 10W快充与五年前红米Note一代机型一致
  13. rpm包安装失败的解决办法
  14. 【网络安全】jquery版本漏洞如何验证
  15. [乡土民间故事_徐苟三传奇]第卅五回_道士怕鬼剪掉头发
  16. Word文档的两种密码忘记了,怎么办?
  17. 信息检索(IR)笔记1: 倒排索引(Inverted Index)
  18. 专科咋了?5年时间从三流外包到阿里P6,逆袭成功终于肝出了这份大厂Android研发岗中高级面经!
  19. 技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场
  20. 完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码

热门文章

  1. Multiple Object Tracking:多目标跟踪综述
  2. python pyOpenGL安装
  3. BCP BIA DRP 灾后业务连续性方案简述
  4. Cissp-【第6章 安全评估与测试】-2021-3-15(661页-706页)
  5. linux下oracle启动关闭
  6. 机器人简化图画手绘图_床上用的扫地机器人,彻底清除细菌,不再担心酒店卫生问题...
  7. Linux下覆盖目录的方法
  8. Linux之不删除指定文件夹,其他都删(文件和文件夹)
  9. Selenium3自动化测试——22.使用DDT运行同一测试用例
  10. php解析QQmv直链,网易云音乐直链解析API源代码^-^