Android 提供了一种数据轻量级的数据持久化方法。使用SharedPreferences 接口 将 key-value 形式的primitive data 存储到文件中。多用于保存软件偏好配置信息。
注意的几点:
1.存储内容:primitive data。(booleans, floats, ints, longs, and strings.)
2. 存储形式:key-value 键值对,存储到xml文件中。
使用的方法:
getSharedPreferences(String name, int mode)【或者 getPreferences()】 获得 SharedPreferences 对象。
读操作:
通过 SharedPreferences 对象 直接调用 getBoolean getInt 等等方法获取 。
写操作:
通过 SharedPreferences 获取 Editor 对象 ,适应Editor对象调用 putBoolean 等方法写文件。
SharedPreferences 的文件存储地址:/data/data/<packagename>/shared_prefs 目录下
实例: 用户登录界面的记住密码功能
public class MainActivity extends Activity { EditText user_name, pass_word; CheckBox rememberCheck; Button btnlogin; // SharedPreferences setting; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); user_name = (EditText) findViewById(R.id.etusername); pass_word = (EditText) findViewById(R.id.etpassword); rememberCheck = (CheckBox) findViewById(R.id.checkBox1); btnlogin = (Button) findViewById(R.id.btnlogin); // 读取sharedpreference中的值 SharedPreferences sharepre = getSharedPreferences("data", MODE_PRIVATE); // 如果 data 文件不存在,创建一个 //String isCheckedStr = sharepre.getString("isChecked", ""); boolean isChecked = sharepre.getBoolean("isChecked", false); // 带默认值的 if(isChecked){ String username = sharepre.getString("username",""); String password = sharepre.getString("password", ""); user_name.setText(username); pass_word.setText(password); rememberCheck.setChecked(true); } // 登录事件响应 btnlogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub SharedPreferences.Editor editor = getSharedPreferences( "data", MODE_PRIVATE).edit(); if (rememberCheck.isChecked()) { // 保存值到 sharedPreferences editor.putBoolean("isChecked", true); editor.putString("username", user_name.getText().toString()); editor.putString("password", pass_word.getText().toString()); }else{ editor.clear(); } editor.commit(); Intent i = new Intent(MainActivity.this,SettingActivity.class); startActivity(i); } }); }
在 DDMS 的file explorer 中可以找到生成的 xml 文件: