zoukankan      html  css  js  c++  java
  • Android数据存储-通过SharedPreferences实现记住密码的操作

    在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点

    下面,小编将带领大家通过SharedPreferences实现记住密码的操作

    一、首先:介绍下什么是SharedPreferences?

    SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。

    image

    image

    二、介绍了SharedPreferences,我们将通过记住SharedPreferences的案例讲述SharedPreferences

    分析:当用户第一次登陆的时候,如果点击记住密码的操作,则将账户密码保存到xml中,如果没有点击,则不保存,或者保存空值到xml中(为了安全起见,建议进行数据存储的加密算法,常用的有MD5加密,Base64加密,小编在这不予讲述 --#)

    案例:

    SP

    这个案例实现的操作如上图

    代码:如下图

    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

  • 相关阅读:
    Go简介
    sRGB标准与伽马校正
    【Web】HTTP基本认证之 Basic Auth
    【ElasticSearch】 ElasticSearch SQL(十三)
    【ElasticSearch】 ElasticSearch X-Pack之用户认证(十二)
    【ElasticSearch】 ElasticSearch Java客户端(十一)
    【ElasticSearch】 ElasticSearch集群分布式文档(十)
    【ElasticSearch】 ElasticSearch集群之分片、副本、故障转移(九)
    【ElasticSearch】 ElasticSearch集群安装(八)
    【ElasticSearch】 全文搜索(七)
  • 原文地址:https://www.cnblogs.com/boy1025/p/4611528.html
Copyright © 2011-2022 走看看