SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。
保存路径为:data文件夹下对应的包文件下下,类型为xml文件。
SharedPreferences存储比较简单,步骤如下:
(1)获取SharedPreferences对象
(2)利用edit()方法获取Editor对象。
(3)通过Editor对象存储key-value键值对数据。
(4)通过commit()方法提交数据。
例子:
public class MainActivity extends Activity {
private EditText nameET;
private EditText phoneET;
private EditText emailET;
private SharedPreferences sp;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
nameET = (EditText) findViewById(R.id.nameET);
phoneET = (EditText) findViewById(R.id.phoneET);
emailET = (EditText) findViewById(R.id.emailET);
//创建一个data.xml 模式为私有,data.xml在rom目录data/data/com.itcast.sp/.../data.xml下
sp = getSharedPreferences("data", MODE_PRIVATE);
nameET.setText(sp.getString("name", "")); // 获取数据, 若没有name值,则指定默认值""
phoneET.setText(sp.getString("phone", ""));
emailET.setText(sp.getString("email", ""));
}
//相应按钮,保存到xml文件中
public void onClick(View view) {
String name = nameET.getText().toString();
String phone = phoneET.getText().toString();
String email = emailET.getText().toString();
Editor editor = sp.edit(); // 获取编辑器
editor.putString("name", name); // 存储数据(还没进入文件)
editor.putString("phone", phone);
editor.putString("email", email);
editor.commit(); // 提交修改(类似事务)
}
}
效果如图:
程序关闭之后下次重新启动还是会显示这些数据,比如说编辑短信的时候突然来了个电话,打完电话返回短信界面我们需要继续编辑之前的内容,需要用到此方法。