本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。
其存储位置在/data/data/<包名>/shared_prefs目录下。
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
实现步骤如下:
一、根据Context获取SharedPreferences对象
二、利用edit()方法获取Editor对象。
三、通过Editor对象存储key-value键值对数据。
四、通过commit()方法提交数据。
实际代码:
public class MainActivity extends ActionBarActivity {
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt=(Button) findViewById(R.id.bt);
Button bt2=(Button) findViewById(R.id.bt2);
//一、根据Context获取SharedPreferences对象
sp = this.getSharedPreferences("setting-pref", Context.MODE_PRIVATE);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 二、利用edit()方法获取Editor对象。
//三、通过Editor对象存储key-value键值对数据。
//四、通过commit()方法提交数据。
sp.edit().putString("text", "呼咙").commit();
sp.edit().putInt("int", 100).commit();
//输出到日志,getString第二参数为默认值
System.out.println(sp.getString("text", ""));
System.out.println(String.valueOf(sp.getInt("int", 0)));
}
});
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 修改相同的key会覆盖value
SharedPreferences.Editor edit = sp.edit();
edit.putString("text", "网盘").commit();
edit.putInt("int", 99).commit();
System.out.println(sp.getString("text", ""));
System.out.println(String.valueOf(sp.getInt("int", 0)));
}
});
}
}
参考网址:http://www.jianshu.com/p/ae2c7004179d
/**
*本类为sharedpreferences保存类 xml本地保存类
* sharedpreferences:android 五大存储方式之一,存储数据类型为: K V 文件已xml形式保存
* 项目应用:1.导航页是否第一次进入
* 2.用户信息,登陆信息
* 好处:只要不卸载软件,或者不手动清除,基本上不会被清除
* */
public class SharedUtils {
private String name="longge";
/*
* 保存数据的方法
* */
public void saveShared(String key,String value,Context ctx){
SharedPreferences shared=ctx.getSharedPreferences(name,0);
Editor edit = shared.edit();
edit.putString(key, value);
edit.commit();
}
/*
* 从本地获取数据
* */
public String getShared(String key,Context ctx){
String str=null;
SharedPreferences shared = ctx.getSharedPreferences(name, 0);
str = shared.getString(key, "");
return str;
}
}