Android登录用户名记住密码——偏好设置(SharedPreferences)
2016-11-23 19:52
399 查看
SharedPreferences:偏好设置
偏好设置指的是“个性化设置”,即同一个软件,不同的使用者,设置的结果是不一样的,例如某音乐播放器中的“是否在WIFI情况下下载歌词”、某游戏中的“是否打开背景音乐”、“是否打开间效”,某新闻APP中的“默认字体大小”……一.使用偏好设置的数据的特征是:
数据量小存在可描述的K-V关系
数据在应用程序中私有,不需要共享给其它应用
随时可能需要保存或读取
二.使用偏好设置存储数据:
调用Context的getSharedPreferences(String name, int mode)方法获取SharedPreferences对象,其中,第1个参数表示保存偏好设置的文件的文件名,不需要指定扩展名,保存时会自动添加.xml作为扩展名,第2个参数固定取值
Context.MODE_PRIVATE
调用SharedPreferences对象的
edit()方法,获取SharedPreferences.Editor对象
调用SharedPreferences.Editor对象的
put???(String key, ??? value)方法写入数据
调用SharedPreferences.Editor对象的
commit()方法提交写入
使用偏好设置保存的数据固定会存储在 /data/data/应用程序的package/shared_prefs/ 文件夹下,如果文件夹不存在,系统会自动创建!
在系统的 设置(Settings) -> 应用程序(Apps) 找到存储了偏好设置的应用,选择 清除数据(Clear Data) 将会把所有偏好设置数据、私有文件、数据库、登录的帐号清除掉!
三.读取偏好设置中的数据:
调用Context的getSharedPreferences(String name, int mode)方法获取SharedPreferences对象,过程可参考保存数据
调用SharedPreferences对象的
get???(String key, ??? defValue)方法读取数据
注意:在偏好设置中读取数据时,可以将偏好设置视为“是不可靠的”,因为首次运行时可能没有保存过数据,则读不到数据,或者用户在使用软件的过程中,随时可能清除数据,也将读不到数据!
四.登录记住用户名与密码
public class MainActivity extends Activity { // 声明控件 private Button btLog; private EditText etUserName; private EditText etPassWord; // 声明变量 private SharedPreferences preferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 控件初始化 btLog=(Button)findViewById(R.id.button1); etUserName=(EditText)findViewById(R.id.editText1); etPassWord=(EditText)findViewById(R.id.editText2); //获取到偏好设置对象:第一个参数是表名,第二个参数是权限 preferences=this.getSharedPreferences("login",this.MODE_PRIVATE); //获取到偏好设置里面存的用户名和密码数据 String name=preferences.getString("name", ""); String pass=preferences.getString("pass", ""); //往两个输入框里面放我们存储的数据 etUserName.setText(name); etPassWord.setText(pass); //设置登录按钮的点击事件:把输入的数据存入偏好设置 btLog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //将数据保存到偏好设置里面 //1.获取到偏好设置的一个编辑的对象 Editor ed=preferences.edit(); //2.编辑器.putString;放字符串 //2.1.获取输入框的内容 String username=etUserName.getText().toString().trim(); String password=etPassWord.getText().toString().trim(); //2.2.放入我们的数据 ed.putString("name",username); ed.putString("pass",password); //3.提交 ed.commit(); Toast.makeText(getApplicationContext(),"保存成功",Toast.LENGTH_SHORT).show(); } }); } }
相关文章推荐
- Android自动登录 记住用户名密码实现 SharedPreferences
- Android中Sharedpreference的使用,记住登录后记住用户名密码
- Android自动登录 记住用户名密码实现 SharedPreferences
- Android自动登录 记住用户名密码实现 SharedPreferences
- android实现记住用户名和密码以及实现自动登录
- Android自动登录 记住用户名密码实现 SharedPreferences
- Android实现登录界面记住用户名与密码
- Android通过SharedPreferences实现自动登录记住用户名和密码功能
- java的用户登录怎样记住上次登录的用户名和密码?
- 关于安卓登录注册页面构建(包含用户名密码验证+记住密码+再按一次返回退出)
- Android自动登录与记住密码
- flex 登录时记住用户名和密码功能实现
- JavaWeb登录、注销、退出、记住用户名和密码
- android 保存 用户名和密码 设置等应用信息优化
- Javascript实现登录记住用户名和密码功能
- 如何设置电脑自动登录系统?不用输入用户名和密码
- Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
- 登录时记住用户名和密码及cookie案例应用
- flex 登录时记住用户名和密码功能实现
- Android 实现记住用户名和密码的功能