上两节我们都是使用文本文件保存用户的信息,这明显是存在漏洞的。同时对文件中的内容不好管理。今天我们学习用SharedPreference保存。sharedPreference是专门保存一些比较零散的数据的。
我们还是用上节的例子分析,将用户的信息使用SharedPreference来保存。
注意:如果不知道是什么例子,请看Android 存储学习之在内部存储中读写文件
当点击确定按钮后,就会保存用户的信息:
public void login(View v) { String name = ed_nam.getText().toString(); String passwd = ed_passwd.getText().toString(); //判断用户名或者密码是否输入 if((name.equals("")) || (passwd.equals(""))) { Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show(); } else { if(cb.isChecked()) { //使用sharedPreference来保存用户的信息, //SharedPreference的默认路径是:当前进程包名下的/share_prefs/ SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE); //拿到SharedPreference的编辑器 Editor editor = sp.edit(); editor.putString("name", name); editor.putString("passwd", passwd); //提交 editor.commit(); } Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show(); } }
可以看到在sharedPreference的路径下有info文件
导出可以看到。info.xml是以key,value的形式保存的
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="passwd">1233333</string> <string name="name">ert</string> </map>
当再次进来时,也能回显用户的信息:
public void readInfo() { //获取info文件中的内容 SharedPreferences sP = getSharedPreferences("info", MODE_PRIVATE); ed_nam.setText(sP.getString("name", "")); ed_passwd.setText(sP.getString("passwd", "")); }
显示效果:
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-05 06:05:31