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

来源:互联网 发布:php布尔类型 编辑:程序博客网 时间:2024/06/05 09:44

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

这是我用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;@Overrideprotected 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
原创粉丝点击