You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
5.0 KiB
90 lines
5.0 KiB
package net.micode.notes.ui;
|
|
import android.app.Activity;
|
|
import android.content.Intent;
|
|
import android.content.SharedPreferences;
|
|
import android.os.Bundle;
|
|
import android.view.View;
|
|
import android.view.WindowManager;
|
|
import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.Toast;
|
|
import net.micode.notes.R;
|
|
public class ChangingPassword extends Activity {
|
|
|
|
EditText OldPassword; // 用于输入旧密码的EditText
|
|
EditText NewPassword; // 用于输入新密码的EditText
|
|
EditText AckPassword; // 用于确认新密码的EditText
|
|
Button Acknowledged; // 提交按钮
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState); //设置监听
|
|
setContentView(R.layout.activity_change_password); // 设置界面布局
|
|
|
|
// 设置软键盘弹出时自动调整布局,并使输入框可见
|
|
getWindow().setSoftInputMode(
|
|
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | //自动调整布局
|
|
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); //使输入框可见
|
|
|
|
// 初始化各个控件对象
|
|
OldPassword = (EditText) findViewById(R.id.old_password); //初始化旧的密码
|
|
NewPassword = (EditText) findViewById(R.id.new_password); //初始化新的密码
|
|
AckPassword = (EditText) findViewById(R.id.ack_password); //确认密码
|
|
Acknowledged = (Button) findViewById(R.id.Acknowledged); //确认
|
|
|
|
|
|
// 设置按钮的点击监听器
|
|
Acknowledged.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
// 获取输入框中的旧密码、新密码和确认密码
|
|
String old_password = OldPassword.getText().toString();//获取旧的密码
|
|
String new_password = NewPassword.getText().toString();//获取新的密码
|
|
String ack_password = AckPassword.getText().toString();//确认新的密码
|
|
|
|
// 获取 SharedPreferences 对象以读取保存的用户密码
|
|
SharedPreferences pref = getSharedPreferences("user management", MODE_PRIVATE); //获取SharedPreferences
|
|
String login_password = pref.getString("password", ""); //读取保存的用户密码
|
|
|
|
// 检查输入的密码是否为空
|
|
if (old_password.equals("") == true || new_password.equals("") == true || ack_password.equals("") == true) {
|
|
// 如果密码为空,显示提示信息
|
|
Toast.makeText(ChangingPassword.this, "密码不能为空", Toast.LENGTH_SHORT).show();
|
|
}
|
|
// 检查新密码和确认密码是否匹配
|
|
else if (new_password.equals(ack_password) == false) {
|
|
// 如果新密码和确认密码不匹配,显示提示信息,并清空确认密码输入框
|
|
Toast.makeText(ChangingPassword.this, "新建密码与重复密码不匹配,请重新输入密码", Toast.LENGTH_SHORT).show(); //显示提示信息
|
|
AckPassword.setText(""); //清空密码输入框
|
|
}
|
|
// 检查旧密码是否正确
|
|
else if (old_password.equals(login_password) == false) {
|
|
// 如果旧密码不正确,显示提示信息,并清空旧密码输入框
|
|
Toast.makeText(ChangingPassword.this, "原有密码错误,请重新输入密码", Toast.LENGTH_SHORT).show(); //显示提示信息
|
|
OldPassword.setText("");//清空旧密码输入框
|
|
}
|
|
// 如果新密码、确认密码和旧密码都正确,则更新用户密码,并显示成功信息
|
|
else if (new_password.equals(ack_password) == true && old_password.equals(login_password) == true) {
|
|
// 使用 SharedPreferences.Editor 对象保存新密码
|
|
SharedPreferences.Editor editor = getSharedPreferences("user management", MODE_PRIVATE).edit();
|
|
editor.putString("password", new_password); //文本框显示密码字符
|
|
editor.apply(); //应用更新用户密码
|
|
// 显示成功信息
|
|
Toast.makeText(ChangingPassword.this, "修改密码成功", Toast.LENGTH_SHORT).show();
|
|
|
|
// 跳转到笔记列表活动
|
|
Intent intent = new Intent(ChangingPassword.this, NotesListActivity.class);//跳转到changingpassword对象
|
|
startActivity(intent); //开始该activity
|
|
finish(); //结束该对象活动
|
|
}
|
|
}
|
|
});
|
|
}
|
|
// 捕捉返回按钮点击事件
|
|
@Override
|
|
public void onBackPressed() {
|
|
// 返回到笔记列表活动
|
|
Intent intent=new Intent(ChangingPassword.this,NotesListActivity.class); //跳转到changingpassword对象
|
|
startActivity(intent); //开始该activity
|
|
finish(); //结束该对象活动
|
|
}} |