SharedPreferences提供一种按“Key=value”的形式进行数据存储
android.content.SharedPreferences借口所保存的信息只能是一些基本的数据类型,如字符串,整形,布尔型等
SharedPreferences保存的是配置文件,文件后缀默认为 *.xml,跟Java中的Properties类一样(只能保存基本的数据类型)
不能保存中文,中文需要转码
默认情况下,所有配置文件都保存在系统文件夹中,/data/data/包名/shared prefs下
Window->show View->Others->File Explorer可以查看系统文件夹
如:
<span style="font-family:SimHei;font-size:18px;">package com.example.testsharedpreferences; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; public class MainActivity extends Activity { private final String FILENAME="potato"; //保存文件名,最后生成potato.xml文件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SharedPreferences sharedPreferences=super.getSharedPreferences(FILENAME, Activity.MODE_PRIVATE); SharedPreferences.Editor edit=sharedPreferences.edit(); edit.putString("name", "potato"); edit.putInt("age", 22); edit.putBoolean("isStudent", true); edit.commit(); } } </span>
在系统文件夹中的/data/data/ com.example.testsharedpreferences/shared prefs下会增加一个 potato.xml文件
其中,SharedPreferences中保存数据是通过SharedPreferences.Editor接口进行的
读取SharedPreferences的数据方法如下:
<span style="font-family:SimHei;font-size:18px;">package com.example.testsharedpreferences; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { private final String FILENAME="potato"; //保存文件名,最后生成potato.xml文件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SharedPreferences sharedPreferences=super.getSharedPreferences(FILENAME, Activity.MODE_PRIVATE); Log.e("Potato", "Name:"+sharedPreferences.getString("name", "我是默认值")); Log.e("Potato", "Age:"+sharedPreferences.getInt("age", 1)); Log.e("Potato", "isStudent:"+sharedPreferences.getBoolean("isStudent", false)); } } </span>