【Android】數據存儲-SharedPreferences存儲

 

  簡單介紹: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);
}
});
}
}
相關文章
相關標籤/搜索