Android 儲存學習之使用SharedPreference儲存檔案
阿新 • • 發佈:2019-01-30
上兩節我們都是使用文字檔案儲存使用者的資訊,這明顯是存在漏洞的。同時對檔案中的內容不好管理。今天我們學習用SharedPreference儲存。sharedPreference是專門儲存一些比較零散的資料的。
我們還是用上節的例子分析,將使用者的資訊使用SharedPreference來儲存。
當點選確定按鈕後,就會儲存使用者的資訊:
public void login(View v) { String name = ed_nam.getText().toString(); String passwd = ed_passwd.getText().toString(); //判斷使用者名稱或者密碼是否輸入 if((name.equals("")) || (passwd.equals(""))) { Toast.makeText(this, "使用者名稱或密碼不能為空", Toast.LENGTH_SHORT).show(); } else { if(cb.isChecked()) { //使用sharedPreference來儲存使用者的資訊, //SharedPreference的預設路徑是:當前程序包名下的/share_prefs/ SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE); //拿到SharedPreference的編輯器 Editor editor = sp.edit(); editor.putString("name", name); editor.putString("passwd", passwd); //提交 editor.commit(); } Toast.makeText(this, "登入成功", Toast.LENGTH_SHORT).show(); } }
可以看到在sharedPreference的路徑下有info檔案
匯出可以看到。info.xml是以key,value的形式儲存的
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="passwd">1233333</string>
<string name="name">ert</string>
</map>
當再次進來時,也能回顯使用者的資訊:
顯示效果:public void readInfo() { //獲取info檔案中的內容 SharedPreferences sP = getSharedPreferences("info", MODE_PRIVATE); ed_nam.setText(sP.getString("name", "")); ed_passwd.setText(sP.getString("passwd", "")); }