SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出……。下面通过一个小小的案例,分享一下我之前做的。
1、最终效果图

大致就是通过SharedPreferences存储类创建一个配置文件(这里是通过按钮去触发的),然后向配置文件中写入配置信息,最后就是读配置中“键”对应的“值”(这里通过按钮触发将读到的值显示出来)。还是比较简单,很容易的。
2、布局文件
activity_main.xml:
1 <?xml version="1.0" encoding="utf-8"?>
2 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 tools:context="thonlon.example.cn.sharedpreferencesdemo.MainActivity">
8
9 <Button
10 android:id="@+id/btn_create"
11 android:layout_width="396dp"
12 android:layout_height="46dp"
13 android:text="@string/btn_create_sp"
14 app:layout_constraintBottom_toBottomOf="parent"
15 app:layout_constraintLeft_toLeftOf="parent"
16 app:layout_constraintRight_toRightOf="parent"
17 app:layout_constraintTop_toTopOf="parent"
18 app:layout_constraintVertical_bias="0.0" />
19
20 <Button
21 android:id="@+id/btn_getInfo"
22 android:layout_width="396dp"
23 android:layout_height="46dp"
24 android:layout_marginLeft="0dp"
25 android:text="@string/btn_getInfo_sp"
26 app:layout_constraintBottom_toBottomOf="parent"
27 app:layout_constraintLeft_toLeftOf="parent"
28 app:layout_constraintRight_toRightOf="parent"
29 app:layout_constraintTop_toTopOf="parent"
30 app:layout_constraintVertical_bias="0.1" />
31
32 <TextView
33 android:id="@+id/textView1"
34 android:layout_width="80dp"
35 android:layout_height="20dp"
36 android:background="@color/colorPrimary"
37 android:text="英文显示:"
38 android:textAlignment="center"
39 android:textColor="@color/colorWhite"
40 app:layout_constraintBottom_toBottomOf="parent"
41 app:layout_constraintHorizontal_bias="0.0"
42 app:layout_constraintLeft_toLeftOf="parent"
43 app:layout_constraintRight_toRightOf="parent"
44 app:layout_constraintTop_toTopOf="parent"
45 app:layout_constraintVertical_bias="0.465" />
46
47 <TextView
48 android:id="@+id/textView2"
49 android:layout_width="80dp"
50 android:layout_height="20dp"
51 android:background="@color/colorPrimary"
52 android:text="中文显示:"
53 android:textAlignment="center"
54 android:textColor="@color/colorWhite"
55 app:layout_constraintBottom_toBottomOf="parent"
56 app:layout_constraintHorizontal_bias="0"
57 app:layout_constraintLeft_toLeftOf="parent"
58 app:layout_constraintRight_toRightOf="parent"
59 app:layout_constraintTop_toTopOf="parent"
60 app:layout_constraintVertical_bias="0.205" />
61
62 <TextView
63 android:id="@+id/tv1"
64 android:layout_width="wrap_content"
65 android:layout_height="wrap_content"
66 app:layout_constraintBottom_toBottomOf="parent"
67 app:layout_constraintHorizontal_bias="0.0"
68 app:layout_constraintLeft_toLeftOf="parent"
69 app:layout_constraintRight_toRightOf="parent"
70 app:layout_constraintTop_toTopOf="parent"
71 app:layout_constraintVertical_bias="0.244" />
72
73 <TextView
74 android:id="@+id/tv2"
75 android:layout_width="wrap_content"
76 android:layout_height="wrap_content"
77 app:layout_constraintBottom_toBottomOf="parent"
78 app:layout_constraintHorizontal_bias="0.0"
79 app:layout_constraintLeft_toLeftOf="parent"
80 app:layout_constraintRight_toRightOf="parent"
81 app:layout_constraintTop_toTopOf="parent"
82 app:layout_constraintVertical_bias="0.53" />
83 </android.support.constraint.ConstraintLayout>
3、activity文件
MainActivity.java
1 package thonlon.example.cn.sharedpreferencesdemo;
2
3 import android.content.SharedPreferences;
4 import android.support.v7.app.AppCompatActivity;
5 import android.os.Bundle;
6 import android.view.View;
7 import android.widget.Button;
8 import android.widget.TextView;
9 import android.widget.Toast;
10
11 public class MainActivity extends AppCompatActivity {
12
13 private SharedPreferences sharedPreferences;
14 private Button btn_create, btn_getInfo;
15 private TextView textView1, textView2;
16
17 @Override
18 protected void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.activity_main);
21 btn_create = (Button) findViewById(R.id.btn_create);
22 btn_getInfo = (Button) findViewById(R.id.btn_getInfo);
23 textView1 = (TextView) findViewById(R.id.tv1);
24 textView2 = (TextView) findViewById(R.id.tv2);
25 // 设置配置文件的名称和配置文件的被访问权限
26 sharedPreferences = getSharedPreferences("config", MODE_ENABLE_WRITE_AHEAD_LOGGING);
27 btn_create.setOnClickListener(new View.OnClickListener() {
28 @Override
29 public void onClick(View view) {
30 write();
31 }
32
33 private void write() {
34 //得到配置编辑器
35 SharedPreferences.Editor edit = sharedPreferences.edit();
36 //写入配置信息到配置文件中
37 edit.putString("Chinese", "SharedPreferences是Android平台上一个轻量级的存储类。");
38 edit.putString("English", "SharedPreferences is a lightweight storage class on the Android platform to save some of the common configuration of the application.");
39 //注意以上只是将配置信息写入了内存
40 edit.commit();//提交内存配置信息到本地
41 Toast.makeText(getApplicationContext(), "成功创建文件", Toast.LENGTH_LONG).show();
42 }
43 });
44 btn_getInfo.setOnClickListener(new View.OnClickListener() {
45 @Override
46 public void onClick(View view) {
47 read();
48 }
49
50 private void read() {
51 String chinese_info = sharedPreferences.getString("Chinese", "");
52 String english_info = sharedPreferences.getString("English", "");
53 textView1.setText(chinese_info);
54 textView2.setText(english_info);
55 }
56 });
57 }
58 }
4、源码下载
百度云下载链接:https://pan.baidu.com/s/1PRY5fdlAt5ZSl05NGniWrw 密码:tpr0