簡單介紹:SharedPreferences是使用鍵值對的方式來存儲數據的,也就是說,當保存一條數據的時候,給這條數據提供一個鍵,若是須要讀取數據,只須要經過這個鍵就能夠提取到對應的數據。ide
一:存儲數據到SharePreferences中spa
Android提供的三種主要方法獲得SharedPreferences()線程
1.Context裏的getSharedPreferences()方法,該方法接收兩個參數,第一個參數用於指定SharedPerferences的文件名(若是指定的文件不在則建立一個),第二個參數指定操做模式,主要有兩個模式。MODE_PRIVATE(默認,與傳入0效果同樣,表示只有當前程序才能對這個SharedPerferences文件讀寫) 和 MODE_MULTI_PROCESS(通常用於會有多個線程中對同一個SharedPreferences文件進行讀寫)rest
2.Activity中的getSharedPreferences(),與Context中相似,不過只接收一個操做模式(使用這個方法會將當前類名做爲文件名)。code
3.PreferenceManager類中的getDefaultPreferences()方法,這是個靜態方法,接收一個Context參數,並將程序的包名做爲前綴來命名SharedPreferences文件。對象
獲得SharePreferences對象後,經過三步向SharePreferences文件存儲數據:blog
1.調用SharePreferences對象的edit()方法獲取一個SharePreferences.Editor對象get
2.向SharePreferences.Editor對象中添加數據,是什麼類型的數據就put什麼類型,如putString()...it
3.commit()方法提交添加的數據。class
public class MainActivity extends Activity { private Button saveData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); saveData = (Button) findViewById(R.id.save_data); saveData.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); editor.putString("name", "Tom"); editor.putInt("age", 28); editor.putBoolean("married", false); editor.commit(); } }); } }
二:從SHarePreferences中讀取數據
與存儲數據相比,讀取數據更加簡單,先getSharePreferences()獲取SharePreferences對象。在存儲時putString()就getString()...
這些對應的get方法,接收兩個參數:鍵(傳入數據時所用的鍵)和默認值(當傳入的鍵找不到對應的值時會返回的默認值)。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); saveData = (Button) findViewById(R.id.save_data); restoreData = (Button) findViewById(R.id.restore_data); …… restoreData.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE); String name = pref.getString("name", ""); int age = pref.getInt("age", 0); boolean married = pref.getBoolean("married", false); Log.d("MainActivity", "name is " + name); Log.d("MainActivity", "age is " + age); Log.d("MainActivity", "married is " + married); } }); } }