1.定義:SharedPrefences是使用鍵值對的方式來存儲數據的。支持多種不同的數據類型存儲。
2.將數據存儲到SharedPreferences中
2.1要使用SharedPreferences來存儲數據,首先要獲取到SharedPreferences對象,獲取方式主要有三種
1>Context類中的getSharedPreferences對象
此方法接受兩個參數,第一個參數用於指定SharedPreferences文件的名稱,如果指定的文件不存在則創建一個
SharedPreferences文件都存在/data/data/<package name>/shared_prefs/目錄下的。第二個參數用於指定操作
模式,目前只有一種模式可選,也是默認的操作模式。和直接傳0是相同的,表示只有當前的程序纔可以對這個
SharedPreferences文件進行讀寫。
2>Activity類中的getPrefences()
只接收一個操作模式方法,因爲此方法會自動將當前的活動的類名作爲SharedPreferences的文件名。
3>PreferenceManager類中的getDefaultPreferences()
這是一個靜態方法,它接受一個Context參數,並自動使用當前應用程序的包名作爲前綴來命名SharedPreferences
文件。
2.2得到SharedPreferences對象之後,就可以向SharedPreferences文件中存儲數據了,主要分爲三步:
1>調用SharedPreferences對象的edit()方法來獲取一個SharedPreferences.Edit對象。
2>向SharedPreferences.Editor對象中添加數據。
3>調用apply()方法將添加的數據提交,從而完成數據存儲操作。
實例代碼:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn=findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences.Editor editor=getSharedPreferences
("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",20);
editor.putBoolean("married",false);
editor.apply();
}
});
}
}
3.從SharedPreferences中讀取數據
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn=findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences pref=getSharedPreferences
("data",MODE_PRIVATE);
String name=pref.getString("name","");
int age=pref.getInt("age",0);
boolean married=pref.getBoolean("married",false);
}
});
}
}