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>