Android移动开发之【Android实战项目】DAY12-App实现修改密码
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实现修改密码相关推荐
- android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...
本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1 Android Studio配置 2.1.1 ...
- android final参数,Android应用开发之Android Jetpack-Navigation 使用中参数的传递方法
本文将带你了解Android应用开发之Android Jetpack-Navigation 使用中参数的传递方法,希望本文对大家学Android有所帮助. 由于使用了Navigation,导致Frag ...
- android中base64加密,Android应用开发之android自带Base64加密解密
本文将带你了解Android应用开发之android自带Base64加密解密,希望本文对大家学Android有所帮助. android项目引用不到以下两个java类 import sun.misc.B ...
- 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...
本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...
- Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...
本文将带你了解Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit,希望本文对大家学Android有所帮助. 系统Api :打开新的 ...
- android图片保存形式,Android应用开发之Android ScrollView截图和图片保存到相册的方式...
本文将带你了解Android应用开发之Android ScrollView截图和图片保存到相册的方式,希望本文对大家学Android有所帮助. 1.1首先来看你一种截取屏幕,这种代码有缺陷,只能截取一 ...
- android 开发art,Android应用开发之Android 系统启动原理(art 虚拟机)
本文将带你了解Android应用开发之Android 系统启动原理(art 虚拟机),希望本文对大家学Android有所帮助. Android 系统启动原理(art 虚拟机) 一.虚拟机的启动 A ...
- android 电量详情,Android应用开发之Android 8.0 电池-)耗电详情获取方法
本文将带你了解Android应用开发之Android 8.0 电池-)耗电详情获取方法,希望本文对大家学Android有所帮助. Android 8.0 电池-)耗电详情获取方法 主要介绍UI位置和基 ...
- android 接口实现方法,Android应用开发之Android 请求网络接口实现方法
本文将带你了解Android应用开发之Android 请求网络接口实现方法,希望本文对大家学Android有所帮助. public class Fragment01 extends Fragmen ...
- android显示通知图标大全,Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除...
本文将带你了解Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除,希望本文对大家学Android有所帮助. android 桌面APP应用图标显示通知消息的数量 ...
最新文章
- 关于LateX的应用
- C语言实现常用数据结构——队列
- 解析 http 请求 header 错误_详解http报文(2)-web容器是如何解析http报文的
- 【Java】泛型中 extends 和 super 的区别?
- Python基础-map/reduce/filter
- Eclipse 自动注释的设置
- 一个平庸程序员的自白
- nginx在linux下是服务吗,[Linux]如何给Nginx添加服务
- Java中的证书透明度验证
- 使用Docker容器和Java EE进行持续交付
- org.apache.jasper.JasperException: Unable to compile class for JSP:
- 卢伟冰再怼荣耀9X 10W快充与五年前红米Note一代机型一致
- rpm包安装失败的解决办法
- 【网络安全】jquery版本漏洞如何验证
- [乡土民间故事_徐苟三传奇]第卅五回_道士怕鬼剪掉头发
- Word文档的两种密码忘记了,怎么办?
- 信息检索(IR)笔记1: 倒排索引(Inverted Index)
- 专科咋了?5年时间从三流外包到阿里P6,逆袭成功终于肝出了这份大厂Android研发岗中高级面经!
- 技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场
- 完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
热门文章
- Multiple Object Tracking:多目标跟踪综述
- python pyOpenGL安装
- BCP BIA DRP 灾后业务连续性方案简述
- Cissp-【第6章 安全评估与测试】-2021-3-15(661页-706页)
- linux下oracle启动关闭
- 机器人简化图画手绘图_床上用的扫地机器人,彻底清除细菌,不再担心酒店卫生问题...
- Linux下覆盖目录的方法
- Linux之不删除指定文件夹,其他都删(文件和文件夹)
- Selenium3自动化测试——22.使用DDT运行同一测试用例
- php解析QQmv直链,网易云音乐直链解析API源代码^-^