关闭

持久化技术之共享参数(SharedPreference)

标签: 共享参数sharedpreference
157人阅读 评论(0) 收藏 举报

当我们需要记住一个数据的时候,即不希望该数据随着程序的重新运行而被重置,我们就可以通过持久化技术来完成

这是我用xmind写的文件,可以作为参考


我习惯用一个类将共享参数的方法封装起来,方便下次直接调用,以下是我的代码

package com.examplesharedpreferencedemo;


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

public class MainActivity extends Activity {
	
	//接口 
	SharedPreferences sp;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		/**
		 * 获取共享参数
		 */
		SharedUtil util = new SharedUtil(this, "data");
		
		/**
		 * 读取共享参数
		 * 可以在BaseActivity中加入静态常量当作键,注释一下,以免忘记所取的键的名字
		 */
		String firString = util.getValue("firstr", true+"");
		boolean first = Boolean.parseBoolean(firString);//用封装类将字符串转为对应的数据类型
		
		/**
		 * 写入共享数据
		 */
		util.putValue("first", false+"");
		
	}
	
}

封装类:

package com.examplesharedpreferencedemo;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
 * 共享参数的类
 * @author 傅炫阳
 *
 */
public class SharedUtil {
	SharedPreferences sp;
	
	public  SharedUtil(Context context,String name) {
		sp =  context.getSharedPreferences(name, Context.MODE_PRIVATE);
	}
	
	/**
	 * 获取共享数据
	 * 将所有数据类型都用String保存
	 */
	public String getValue(String key,String defValue) {
		return sp.getString(key, defValue);
	}
	
	/**
	 * 写入共享数据
	 * @param key
	 * @param value
	 * @return
	 */
	public boolean putValue(String key,String value) {
		Editor editor = sp.edit();
		editor.putString(key, value);
		editor.commit();//可在子线程提交
	//API9之上才行,与commit一样,但是没有返回值,无法判断是否提交成功,且必须在主线程中提交数据
//		editor.apply();
		return editor.commit();
	}
	
}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15493次
    • 积分:393
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条