1.适用场合:类似于ini文件,用来保存程序的一些属性设置
2.使用方式:通过getSharedPreferences方法获得Preferences对象,获得editor对象,使用editor.put……()方法添加数据,最后通过commit()方法保存这些数据
3.保存参数:自动保存到XML文件,路径为/data/data/包名/shared_prefs文件夹下
SharedPreferences preferences = getSharedPreferences("kesenhoo", Context.MODE_PRIVATE); String name = preferences.getString("name", ""); int age = preferences.getInt("age", 20); nameText.setText(name); ageText.setText(String.valueOf(age));
4.读取参数:
SharedPreferences preferences = getSharedPreferences("kesenhoo", Context.MODE_PRIVATE); String name = preferences.getString("name", ""); int age = preferences.getInt("age", 20); nameText.setText(name); ageText.setText(String.valueOf(age));
5.注意事项:默认情况其他应用程序不可以访问本程序的SharedPreferences文件,如果需要访问其他应用程序的SharedPreferences的配置文件,可以使用如下方法:
关键点:学习如何构造其他应用的上下文对象
Context otherContext = getContext().createPackageContext("com.hoo.preferences",Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences preferences = otherContext.getSharedPreferences("kesenhoo", Context.MODE_PRIVATE);
//下面的包名应该是需要访问的其他程序的所在位置,并设置为忽视安全问题
//下面的包名应该是需要访问的其他程序的所在位置,并设置为忽视安全问题 Context otherContext = getContext().createPackageContext("com.hoo.preferences", Context.CONTEXT_IGNORE_SECURITY); SharedPreferences preferences = otherContext.getSharedPreferences("kesenhoo", Context.MODE_PRIVATE); String name = preferences.getString("name", ""); int age = preferences.getInt("age", 20); Log.i(TAG, "name="+ name + ",age="+ age);