SharedPreferences是使用键值对的形式存储的,并且支持多种不同的数据类型,存的是String,取得值也是String。
使用SharedPreferences有三种方法:
1: Context类中的getSharedPreferences()方法
这个方法需要两个参数,第一个参数用于指定SharedPreferences文件名称,如果指定的文件不存在则会创建一个,第二个参数用于指定操作模式,目前只有MODE_PRIVATE这一种模式可以选择,表示只有当前程序才可以对这个SharedPreferences文件进行读写。
2: Activity类中的getPreferences()方法
这个方法只接收一个参数,操作模式,使用这个方法是会自动将当前活动的类名作为SharedPreferences文件名。
3: PreferenceManager 类中的getDefaultSharedPreferences()方法
这是一个静态方法,接收context参数,并自动使用当前应用程序的包名来命名SharedPreferences文件,得到了SharedPreferences对象之后,就可以向SharedPreferences文件存储数据了。
分三步实现:
- 调用SharedPreFerences对象中的edit()方法来获取一个SharedPreFerences.Editor对象。
- 向SharedPreferences.Editor对象中添加数据,添加什么类型就能存什么类型。
- 调用apply()方法将数据提交,完成数据存储操作。
Demo:
package sd.he3.sharedpreferencestest;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 {@Overrideprotected void onCreate(final Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button = findViewById(R.id.button_view);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SharedPreferences.Editor editor = getSharedPreferences("HelloWorld",MODE_PRIVATE).edit();editor.putString("H","HelloWorld");editor.apply();}});Button button1 = findViewById(R.id.button_2);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SharedPreferences sharedPreferences = getSharedPreferences("HelloWorld",MODE_PRIVATE);String H = sharedPreferences.getString("H","");Log.d("H++++++++++>>>>>>>>>>>>", H);}});}}
控制台打印:D/H++++++++++>>>>>>>>>>>>: HelloWorld