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(); //结束该对象活动 }}