1. 介绍:SharedPreferences 的作用是使用键值对的方式存储数据。且支持多种不同的数据类型存储;
安卓中主要使用了三种方法用于得到SharePreferences对象。本结主要介绍conext类中的getSharedPreferences()方法。
2. 获取到SharedPreferences对象后,就可以向文件中写数据,或者从中读数据;主要分为三步实现:
a) 调用SharedPreferences对象的edit()方法来获取一个SharePreferences.Editor对象。
b) 向SharePreferences.Editor对象中添加数据,比如添加一个string类型,就使用putString()方法;
c) 调用commit()方法将添加的数据提交,从而完成数据的存储操作。
3. 下面举例说明数据的存储于读取。
定义了两个button, 一个用于触发存储数据, 一个用户触发读数据;
package com.exmple.xxx.sharepreferencestest; import android.content.SharedPreferences; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button button; private Button restoreBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences.Editor editor = getSharedPreferences("testData", MODE_PRIVATE).edit(); editor.putString("name", "leavescy"); editor.putInt("age", 24); editor.putBoolean("married", false); editor.commit(); } }); restoreBtn = findViewById(R.id.restoreBtn); restoreBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences pref = getSharedPreferences("testData", MODE_PRIVATE); String name = pref.getString("name", ""); int age = pref.getInt("age", 0); boolean married = pref.getBoolean("married", false); Log.i("MainActivity", "name is " + name); Log.i("MainActivity", "age is " + age); Log.i("MainActivity", "married is " + married); } }); } }
在点击SAVE DATA button后, 会将数据存储到
打开testData, 数据为:
此时发现存储的数据确实是以键值对的方式存储了,且存储为xml格式;
点击Restore Data button时, 数据被读出来,并打印出日志: