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 { @Override protected 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() { @Override public 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() { @Override public void onClick(View v) { SharedPreferences sharedPreferences = getSharedPreferences("HelloWorld",MODE_PRIVATE); String H = sharedPreferences.getString("H",""); Log.d("H++++++++++>>>>>>>>>>>>", H); } }); } }
控制台打印:D/H++++++++++>>>>>>>>>>>>: HelloWorld