菜鸟日记
====================================
刚学习Android不久,最近做的大部分都是关于UI布局方面的工作,一些小问题往往会纠结很多时间,等到某个时间才会豁然开朗
这些天在帮公司整一个需要登录界面的App,我完成的是控件布局的工作,也就因为这个才接触到SharedPreferences,下面就分享下我的代码
/*
*利用Shared Prefences 保存用户名信息
*
*
* 概述:
* 1.在 onPause() 方法中保存数据
* 2.在 onResume() 方法中读取数据
*
*/
private EditText editUsername;
private EditText editPassword;
private CheckBox cbLogin;
@Override
protected void onResume() {
super.onResume();
//读取Shared Preferences保存的用户数据
SharedPreferences sp = getSharedPreferences("LOGININFO", MODE_PRIVATE);
editUsername.setText(sp.getString("USERNAME", null));
editPassword.setText(sp.getString("PASSWORD", null));
cbLogin.setChecked(sp.getBoolean("CHECKED", false));
}
@Override
protected void onPause() {
super.onPause();
//保存用户数据到Shared Preferences
SharedPreferences sp = getSharedPreferences("LOGININFO", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
if(cbLogin.isChecked()) {
editor.putString("USERNAME", editUsername.getText().toString());
editor.putString("PASSWORD", editPassword.getText().toString());
} else {
editor.putString("USERNAME", null);
editor.putString("PASSWORD", null);
}
editor.putBoolean("CHECKED", cbLogin.isChecked());
editor.commit();
}
=============================================
上面的例子实现了,若勾选CheckBox “保存信息”,则会将用户名和密码用SharedPreferences的方法来读写。
在编写代码的过程中,最后要通过Log tag观察Activity的生命周期来确定了该在何时读取何时保存