Android数据存储-通过SharedPreferences实现记住密码的操作
在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点
下面,小编将带领大家通过SharedPreferences实现记住密码的操作
一、首先:介绍下什么是SharedPreferences?
SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。
二、介绍了SharedPreferences,我们将通过记住SharedPreferences的案例讲述SharedPreferences
分析:当用户第一次登陆的时候,如果点击记住密码的操作,则将账户密码保存到xml中,如果没有点击,则不保存,或者保存空值到xml中(为了安全起见,建议进行数据存储的加密算法,常用的有MD5加密,Base64加密,小编在这不予讲述 --#)
案例:
这个案例实现的操作如上图
代码:如下图
package bzu.edu.cn.myapplication; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; /** * 这是一个用于记住密码的demo * 知识点:SharedPreferences 存储的数据存储到xml文件中,读取的时候通过检测checkbox是否被选中,从而判断 * 是否需要从xml中进行密码的读取操作 */ public class MainActivity extends Activity { private EditText edt_user,edt_pass; private CheckBox ck_save; private Button btn_login; private static final String PREFS_NAME="NamePWD"; private SharedPreferences sharedPreferences=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); // 初始化控件 setListener(); //设置监听事件 getData(); //第二次进入的时候得到数据 } @Override protected void onResume() { super.onResume(); getData(); } private void getData() { sharedPreferences=getSharedPreferences(PREFS_NAME,MODE_PRIVATE); //判断之前是否存储过密码 if(sharedPreferences.getBoolean("isKeep",true)){ edt_user.setText(sharedPreferences.getString("user","")); edt_pass.setText(sharedPreferences.getString("pass","")); }else { edt_user.setText(""); edt_pass.setText(""); } } private void setListener() { btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if("monster".equals(edt_user.getText().toString())&&"123".equals(edt_pass.getText().toString())){ if(ck_save.isChecked()){ //如果checkbook被选中 sharedPreferences=getSharedPreferences(PREFS_NAME,MODE_PRIVATE); SharedPreferences.Editor edit=sharedPreferences.edit(); edit.putBoolean("isKeep",true); edit.putString("user",edt_user.getText().toString()); edit.putString("pass",edt_pass.getText().toString()); edit.commit(); }else { sharedPreferences=getSharedPreferences(PREFS_NAME,MODE_PRIVATE); SharedPreferences.Editor edit=sharedPreferences.edit(); edit.putBoolean("isKeep",false); edit.putString("user",""); edit.putString("pass",""); edit.commit(); } //跳转 Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); }else { Toast.makeText(MainActivity.this,"账号或密码错误",Toast.LENGTH_SHORT).show(); } } }); } private void initView() { edt_user= (EditText) findViewById(R.id.edt_user); edt_pass= (EditText) findViewById(R.id.edt_Pass); ck_save= (CheckBox) findViewById(R.id.ck_save); btn_login= (Button) findViewById(R.id.btn_login); } }
分析:首先声明SharedPreferences对象,然后调用edit()方法,每次使用完成后一定要commit()
----
源码托管:https://coding.net/u/monsterLin/p/SharedPreferences_Demo/git