使用步骤:
1、得到SharedPreferences对象
2、调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
3、向SharedPreferences.Editor对象中添加数据。
4、调用commit方法将添加的数据提交。
详细过程:
1、得到SharedPreferences对象
方法1:
Context.getSharedPreferences(文件名称,操作模式)
文件名称不存在就会创建一个,操作模式有两种:
MODE_PRIVATE:默认操作模式,直接在把第二个参数写0就是默认使用这种操作模式,这种模式表示只有当前的应用程序才可以对当前这个SharedPreferences文件进行读写。
MODE_MULTI_PRIVATE:用于多个进程共同操作一个SharedPreferences文件。
注:MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE这两种模式已经在Android 4.2版本以后废弃了。
方法2:
Activity.getSharedPreferences(操作模式)
使用这个方法会自动将当前活动的类名作为SharedPreferences的文件名
方法3
PreferenceManager.getDefaultSharedPreferences(Context)
使用这个方法会自动使用当前程序的包名作为前缀来命名SharedPreferences文件
2、调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
SharedPreferences.Editor editor = getSharedPreferences(“data”,MODE_PRIVATE).edit();
3、向SharedPreferences.Editor对象中添加数据。
editor.putString(“name”,”Lily”); //以键值对形式存储
editor.putInt(“age”,”20”); //以键值对形式存储
editor.putBoolean(“married”,false); //以键值对形式存储
4、调用commit方法将添加的数据提交。
editor.commit();
代码示例:
SharedPreferences pref = MainActivity.this.getSharedPreferences(“data”,MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString(“name”,”lily”);
editor.putString(“age”,”20”);
editor.putBoolean(“married”,false);
editor.commit();
如果要读取数据:
SharedPreferences pref = getSharedPreferences(“data”,MODE_PRIVATE);
String name = pref.getString(“name”,”“);//第二个参数为默认值
int age = pref.getInt(“age”,0);//第二个参数为默认值
boolean married = pref.getBoolean(“married”,false);//第二个参数为默认值
保存对象:
android使用SharedPreferences保存对象 - 推酷
http://www.tuicool.com/articles/6nAZrq
保存list:
可以将list转化为json字符串,然后以string的形式保存,使用的时候先取出这个string再解析json得到list。
SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)。SharedPreferences常用来存储一些轻量级的数据.
//实例化SharedPreferences对象(第一步)
SharedPreferences mySharedPreferences= getSharedPreferences("test",
Activity.MODE_PRIVATE);
//实例化SharedPreferences.Editor对象(第二步)
SharedPreferences.Editor editor = mySharedPreferences.edit();
//用putString的方法保存数据
editor.putString("name", "Karl");
editor.putString("habit", "sleep");
//提交当前数据
editor.commit();
//使用toast信息提示框提示成功写入数据
Toast.makeText(this, "数据成功写入SharedPreferences!" ,
Toast.LENGTH_LONG).show();
执行以上代码,SharedPreferences将会把这些数据保存在test.xml文件中,可以在File Explorer的data/data下导出该文件,并查看。
那么已经保存好的数据如何读取出来呢。我们来看:
//同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象
SharedPreferencessharedPreferences= getSharedPreferences("test",
Activity.MODE_PRIVATE);
// 使用getString方法获得value,注意第2个参数是value的默认值
String name =sharedPreferences.getString("name", "");
String habit =sharedPreferences.getString("habit", "");
//使用toast信息提示框显示信息
Toast.makeText(this, "读取数据如下:"+"\n"+"name:" + name + "\n" + "habit:" + habit,
Toast.LENGTH_LONG).show();
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onClick_WriteData(View view)
{
SharedPreferences mySharedPreferences = getSharedPreferences("test",
Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = mySharedPreferences.edit();
editor.putString("name", "karl");
editor.putString("habit", "sleep");
editor.commit();
Toast.makeText(this, "数据成功写入SharedPreferences!" ,
Toast.LENGTH_LONG).show();
}
public void onClick_ReadData(View view)
{
SharedPreferences sharedPreferences = getSharedPreferences("test",
Activity.MODE_PRIVATE);
String name = sharedPreferences.getString("name", "");
String habit = sharedPreferences.getString("habit", "");
Toast.makeText(this, "读取数据如下:"+"\n"+"name:" + name + "\n" + "habit:" + habit,
Toast.LENGTH_LONG).show();
}
}