SharedPreferences可以做到儲存簡單資料的功能,簡單的應用像儲存登入帳號的資料或者其他需要儲存少量的資料的時候可以派上用場,如果資料量大的話就不建議使用了,今天就來講講它是怎麼儲存資料的。
public class MainActivity extends AppCompatActivity {
SharedPreferences pref;
EditText account,password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
account = (EditText) findViewById(R.id.account);
password = (EditText) findViewById(R.id.password);
}
//新增儲存資料
public void sava(View v){
pref = getSharedPreferences("DATA",MODE_PRIVATE);
pref.edit()
.putString("NAME",account.getText().toString())
.putString("PHONE",password.getText().toString())
.apply(); //或commit()
}
//讀取資料
public void read(View v){
pref = getSharedPreferences("DATA",MODE_PRIVATE);
account.setText(pref.getString("NAME",""));
password.setText(pref.getString("PHONE",""));
}
//清除EditTexts內容
public void clear(View v){
pref = getSharedPreferences("DATA",MODE_PRIVATE);
account.setText("");
password.setText("");
//下面程式碼能清除所有資料
/*SharedPreferences.Editor editor = pref.edit();
editor.clear();
editor.commit();*/
}
}
可以看到在新增SharedPreferences資料最後有用到commit(),這裡也可以使用apply(),主要差別在:
而取得資料的方法也大同小異,一樣透過變數宣告並在getSharedPreferences(String name, int mode)輸入相同的檔名取得剛新增的檔案,接者依要取出的資料型態get資料。最後展示出類似登入時記住帳密的效果。
今天的SharedPreferences就講到這邊,謝謝大家~