1. 程式人生 > >Android 儲存學習之使用SharedPreference儲存檔案

Android 儲存學習之使用SharedPreference儲存檔案

上兩節我們都是使用文字檔案儲存使用者的資訊,這明顯是存在漏洞的。同時對檔案中的內容不好管理。今天我們學習用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", ""));
	}
顯示效果: