1. 程式人生 > >SharedPreferences的簡單測試

SharedPreferences的簡單測試

啥時候才能不是專案需要就得去百度而是我自己就有思路開始寫程式碼哇,,

 直接上程式碼:

package com.example.ex50videotest;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;

/**
 * @author ShirleyLuo
 * @date 2018年10月9日 下午3:02:32
 */
public class SharedPreferenceDemo extends Activity {
	/**
	 * 1:SharedPreferences的資料是儲存到哪裡的?一定是xml檔案嗎?是的。
	 * 2:據說如果是用早fragment裡面的SharedPreferences的話需要放在onAttach(Activity
	 * activity)裡面進行SharedPreferences 的初始化,否則會報空指標 即 getActivity()會可能返回null
	 * !但是自己沒有試過的
	 */

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		/**
		 * 存入資料
		 */
		// 獲取SharedPreferences物件,引數一:用於儲存SharedPreferences的資料資原始檔名稱;引數二:訪問這個檔案的許可權
		SharedPreferences sp = getSharedPreferences("test",
				Context.MODE_PRIVATE);
		// 讓SharedPreferences處於被編輯狀態
		SharedPreferences.Editor ed = sp.edit();
		// 存放資料,只能存放Java的基本型別的資料
		ed.putString("str", "ppx");// key-value形式,因為SharedPreferences其實是儲存在Map裡面的
		ed.putInt("data", 789);
		// 完成提交
		ed.commit();

		/**
		 * 讀取資料
		 */
		// 首先還是要獲取到SharedPreferences
		SharedPreferences sp2 = getSharedPreferences("test",
				Context.MODE_PRIVATE);
		// 獲取指定key的值,如果沒有就設為預設值
		String str = sp2.getString("str", "預設值");
		int data = sp2.getInt("data", 0);

		// 移除指定的資料sp:如果是在移除了資料之後再去列印資料的話要在提交之後再獲取一次,要不然列印的就是之前的資料哦。
		Editor ed2 = sp2.edit();
		ed2.remove("data");

		// 清空資料
		ed2.clear();

		// 完成提交
		ed2.commit();
		int d2 = sp2.getInt("data", 0);
		String str2 = sp2.getString("str", "預設值");
		Log.d("233", "233" + str2 + "---->>>" + d2);
	}
}