除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:
一、根据Context获取SharedPreferences对象
二、利用edit()方法获取Editor对象。
三、通过Editor对象存储key-value键值对数据。
四、通过commit()方法提交数据。
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取SharedPreferences对象 /** * 得到配置参数的类 * 参数1 配置参数文件的名字,没有后缀名 * 参数2 文件访问模式 只能是生成这个文件的应用访问 */ SharedPreferences sp = getSharedPreferences("perference", MODE_PRIVATE); //存入数据 Editor editor = sp.edit(); editor.putString("STRING_KEY", "string"); editor.putInt("INT_KEY", 0); editor.putBoolean("BOOLEAN_KEY", true); editor.commit(); //返回STRING_KEY的值 Log.d("SP", sp.getString("STRING_KEY", "none")); //如果NOT_EXIST不存在,则返回值为"none" Log.d("SP", sp.getString("NOT_EXIST", "none")); } }
获取数据
public void onClick(View v) { nameEditText = (EditText)findViewById(R.id.name); ageEditText = (EditText)findViewById(R.id.age); /** * 得到配置参数的类 * 参数1 配置参数文件的名字,没有后缀名 * 参数2 文件访问模式 只能是生成这个文件的应用访问 */ SharedPreferences share = getSharedPreferences("perference", MODE_PRIVATE); String rname = share.getString("name", "");//根据key寻找值 参数1 key 参数2 如果没有则的得到的是value显示的内容 String rage = share.getString("age", ""); nameEditText.setText(rname); ageEditText.setText(rage); }