首页 > 学院 > 开发设计 > 正文

SharedPerference(轻量级存储)判定是否记住密码

2019-11-06 09:51:57
字体:
来源:转载
供稿:网友
一个登陆页面完成是否记住密码的功能逻辑步骤:a/写一个保存文件内容(通过键值对的形式)的方法 PRivate void saveBySP(String key,String value) { SharedPreferences sp = getSharedPreferences(file_name, MODE_PRIVATE); sp.edit().putString(key, value).commit(); b/写一个保存checkbox是否选中的状态结果的方法。无论是否选中,结果都要保存 private void CBcheck(boolean isCheck){ SharedPreferences sp=getSharedPreferences(file_name,MODE_PRIVATE); sp.edit().putBoolean("check",isCheck).commit(); 1、点击登录时的监听事件,首先获取用户名的内容,并保存 2、保存checkbox的选中状态 3、如果选中checkbox,将输入的密码内容也保存里边 4、初始化数据,将保存的用户名和checkbox的选中状态展示出来,如果是选中状态,则展示密码代码案例:package com.work.loginpwd;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private EditText et_user, et_pwd; private CheckBox cb; private Button btn_login; private String rember_user, rember_pwd; private String file_name="login"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intiView(); intData(); } private void intiView() { et_user = (EditText) findViewById(R.id.et_user); et_pwd = (EditText) findViewById(R.id.et_pwd); cb = (CheckBox) findViewById(R.id.cb); btn_login = (Button) findViewById(R.id.btn_login); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //点击登录,先保存账号 String accout=et_user.getText().toString(); saveBySP(rember_user,accout); //保存checkbox的选中状态 CBcheck(cb.isChecked()); //如果选中保存密码 if(cb.isChecked()){ String pwd=et_pwd.getText().toString(); saveBySP(rember_pwd,pwd); } Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show(); } }); } /** * 初始化数据 * 获取用户名,展示到页面上 获取chekbox的选中状态,设置到页面上 如果checkbox是选中的,就获取密码,展示到页面上 */ private void intData(){ //拿到账号,展示到username Editext当中 SharedPreferences sp=getSharedPreferences(file_name,MODE_PRIVATE); String username=sp.getString(rember_user,""); et_user.setText(username); //拿到checkbox的选中状态,设置给Cb boolean b=sp.getBoolean("check",false); cb.setChecked(b); if(b){ //如果cb是选中的,就取pwd,展示到editetext中 String pwd=sp.getString(rember_pwd,""); et_pwd.setText(pwd); } } private void saveBySP(String key,String value) { SharedPreferences sp = getSharedPreferences(file_name, MODE_PRIVATE); sp.edit().putString(key, value).commit();// Toast.makeText(this, "存储成功", Toast.LENGTH_SHORT).show(); } private void CBcheck(boolean isCheck){ SharedPreferences sp=getSharedPreferences(file_name,MODE_PRIVATE); sp.edit().putBoolean("check",isCheck).commit(); }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表