Android-SharedPreferences

    SharedPreferences用于储存轻量级数据在本地,可以保存的数据类型有:int、boolean、float、long、String、StringSet

访问模式

SharedPreferences有三种访问模式

  1. MODE_PRIVATE: 私有,仅创建SharedPreferences的程序有权限对其进行读写
  2. MODE_WORLD_READABLE: 其他应用程序有读取权限,没有写入权限(Android 4.2中弃用)
  3. MODE_WORLD_WRITEABLE: 其他应用程序有写入权限,没有读取权限(Android 4.2中弃用)

读写本地配置文件

得到一个SharedPreferences实例

1
2
3
//  getSharedPreferences返回一个SharedPreferences实例
// 传入两个参数: 本地配置文件名、访问模式
SharedPreferences sharedPreferences = getSharedPreferences("文件名",MODE_PRIVATE);

从SharedPreferences中读取信息

1
2
3
//  读取配置信息,当对应的key值找不到便会返回默认值
// 传入两个参数: key、默认值
String str = sharedPreferences.getString("time","首次读取");

读取到默认值则写入配置文件

1
2
3
4
5
6
7
8
9
10
11
  if (str.equals("首次读取")){
// 使用sharedPreferences的edit()方法写入本地配置
SharedPreferences.Editor editor = sharedPreferences.edit();
// 写入值
editor.putString("time","配置文件信息");
// 提交以写入
editor.commit();
}
else {
Toast.makeText(this,"读取到的值" + str,Toast.LENGTH_SHORT).show();
}

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class MyCoffeeStore extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_coffee_store);

// getSharedPreferences返回一个SharedPreferences实例,配置文件名、访问模式
SharedPreferences sharedPreferences = getSharedPreferences("testName",MODE_PRIVATE);

// 读取配置信息,当对应的key值找不到便会返回默认值;传入key、默认值
String str = sharedPreferences.getString("testName","首次读取");
if (str.equals("首次读取")){
// 使用sharedPreferences的edit()方法写入本地配置
SharedPreferences.Editor editor = sharedPreferences.edit();
// 写入值
editor.putString("testName","配置文件信息");
// 提交以写入
editor.commit();
}
else {
Toast.makeText(this,"读取到的值" + str,Toast.LENGTH_SHORT).show();
}
}
}