特点:采用键值对的方式来存储,可存储不同类型数据。
1. Context类 中的 getSharedPreferences()方法
getSharedPreferences( 参数1, 参数2)
-参数1:文件名称(不存在就重新创建一个)
-参数2:操作模式,只有MODE_PRIVATE,含义:只有当前应用程序才能对其进行读写
2. Activity类 中的 getPreferences()方法
getPreferences(参数1)
-参数1:操作模式。(自动为文件命名:当前活动的类名)
3. PreferenceManager类 中的 getDefaultSharedPreferences()方法
getDefaultSharedPreferences(参数1)
-参数1:Context参数。(自动为文件命名:当前应用程序的包名)
-存储数据的3个步骤:
|-调用SharedPreferences对象的edit()方法,得到SharedPreferences.Editor对象
|-向SharedPreferences.Editor对象添加数据(布尔:putBoolean(),字符串:putString()...)
|-apply()方法,提交数据,完成存储操作。
4. 范例:SharedPreferences存储
-布局layout-main.xml
-主活动 MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button savaData=(Button) findViewById(R.id.save_data);
savaData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",7);
editor.putBoolean("married",false);
editor.apply();
}
});
}
}
-运行结果
1. 提供了一系列getXXX()方法:getInt(),getString()...
语法:getXXX( 参数1,参数2)
-参数1:键
-参数2:默认值(当没有值时 返回的值)
2. 范例:SharedPreferences读取
- layout_main.xml(添加一个按键)
- MainActivity.java(添加以下代码)
Button restoreData =(Button) findViewById(R.id.restore_data);
restoreData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences pref =getSharedPreferences("data",MODE_PRIVATE);
String name=pref.getString("name","");
int age =pref.getInt("age",0);
boolean married =pref.getBoolean("married",false);
Log.d("MainActivity","name is "+name);
Log.d("MainActivity","age is "+age);
Log.d("MainActivity","married is "+married);
}
});
- 结果