访问SharedPreferences中的数据代码以下:
SharedPreferences sharedPreferences = getSharedPreferences("zyj", Context.MODE_PRIVATE);
//getString()第二个参数为缺省值,若是
preference中不存在该
key,将返回缺省值
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 1);
若是访问其余应用中的Preference,
前提条件是:
该preference建立时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。如:有个<package
name>为
com.jbridge.pres.activity的应用使用下面语句建立了
preference。
getSharedPreferences("zyj", Context.
MODE_WORLD_READABLE);
其余应用要访问上面应用的
preference,首先须要建立上面应用的
Context,而后经过
Context 访问preference ,访问preference时会在应用所在包下的
shared_prefs目录找到
preference :
Context otherAppsContext = createPackageContext("com.jbridge.pres.activity", Context.
CONTEXT_IGNORE_SECURITY
);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("zyj",
Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);
若是不经过建立
Context访问其余应用的
preference,能够以读取xml文件方式直接访问其余应用
preference对应的
xml文件,如:
File xmlFile = new File(“/data/data/<package name>/shared_prefs/zyj.xml”);//<package name>应替换成应用的包名
工程中的例子
private void fillUsernameAndPassword() {
String username = sp.getString("上次登陆", "");
<string name="上次登陆">....
</string>
<string name="上次登陆">....
</string>
if (!username.equals("")) {
String password = sp.getString(username, "");
<string name="某个用户名">密码
</string>
etLoginname.setText(username);
etPassword.setText(password);
}
}