《Android那些事》——SharedPreference的簡單使用
阿新 • • 發佈:2019-01-13
SharedPreference的使用
例如:預設歡迎語,登入使用者名稱和密碼等。其以鍵值對的方式儲存, 使得我們能夠很方便的讀取的存入。
SharedPreferences還支援多種不同的資料型別儲存,如果儲存的資料型別是整型,那麼讀取出來的資料也是整型的,儲存的資料是一個字串,讀取出來的資料仍然是字串。
Demo:
介面:
Android系統中主要提供了三種方式用於簡單地實現資料持久化功能,即檔案儲存、SharedPreference儲存以及資料庫儲存。當然,除了這三種方式之外,你還可以將資料儲存在手機的 SD卡中,不過使用檔案、SharedPreference或資料庫來儲存資料會相對更簡單一些,而且比起將資料儲存在 SD卡中會更加的安全
SharedPreference是Android提供的一種輕量級的資料儲存方式,主要用來儲存一些簡單的配置資訊。例如:預設歡迎語,登入使用者名稱和密碼等。其以鍵值對的方式儲存, 使得我們能夠很方便的讀取的存入。
SharedPreferences還支援多種不同的資料型別儲存,如果儲存的資料型別是整型,那麼讀取出來的資料也是整型的,儲存的資料是一個字串,讀取出來的資料仍然是字串。
Demo:
public class MainActivity extends AppCompatActivity { private EditText edit; private CheckBox box; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText) findViewById(R.id.name); box = (CheckBox) findViewById(R.id.cb); //得到sharedPreferences,鍵值對形式,將當前頁面的資料儲存在share裡面 SharedPreferences sharedPreferences=getSharedPreferences("share", MainActivity.MODE_PRIVATE); //因為不知道name的值是什麼,它是由sharedPreferences傳過來的,所以設為空 edit.setText(sharedPreferences.getString("name","")); box.setChecked(sharedPreferences.getBoolean("sex",false)); } //當程式徹底退出時,記錄當前頁面資料,再次開啟應用時,恢復關閉前所記錄的資料 @Override protected void onStop() { super.onStop(); SharedPreferences sharedPreferences=getSharedPreferences("share", MainActivity.MODE_PRIVATE); //記錄當前的物件資料 SharedPreferences.Editor editor=sharedPreferences.edit(); //做儲存 editor.putString("name",edit.getText().toString()); editor.putBoolean("sex",box.isChecked()); //儲存 editor.commit(); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.sharedpreferences.MainActivity"> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" /> <CheckBox android:id="@+id/cb" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="CheckBox" /> </LinearLayout>
介面: