数据存储之SharedPreferences

sp存储专门用来存储一些单一的小数据可以设置数据只能是当前应用读取,而别的应用不可以

应用卸载时会删除此数据


SharedPreferences:对应sp文件的接口

context.getSharedPreferences(String name,int mode):得到sp对象

name文件名(不带.xml)  mode:生成的文件模式(是否是私有的,即其它应用是否可以访问)

Editor sp.edit():得到Editor对象

getXxx(name,defaultValue):根据name得到对应的数据

Editor:能更新sp文件的接口


有时我们会从activity1跳转到activity2,activity上设置数据后,按返回键后,当activity1再次跳转到activity2时会发现activity上的数据消失了,我们想要它上面的数据还要显示,这时就可以使用SharedPreferences

保存数据容易,但是要第二次进入activity2还会显示数据得想想怎么处理,在哪里处理,这里我采用的是自定义一些方法

首先保存数据,获取SharedPreferences对象,我们知道Sp并不能修改数据,通过Editor可以进行修改

private static  SharedPreferences sp;//设置sp为成员变量
在onCreate的方法里进行获取对象

sp = getSharedPreferences("daojishi", Context.MODE_PRIVATE);//文件名为daojishi   其它的应用程序不能使用

保存时必须使用commit才能

sp.edit().putString("time", time).commit();
sp.edit().putString("kemu", kemu).commit();
sp.edit().putString("place", place).commit();
sp.edit().putString("dstime", dstime).commit();
sp.edit().putString("tian", tian).commit();

判断是否有数据

public static boolean contains(Context context,String key) {
		sp = context.getSharedPreferences("daojishi", Context.MODE_PRIVATE);
		return sp.contains(key);
	}
设置完之后只需要在onCreate的方法里判断里面是否有数据,如果有就使用里面的数据

if (contains(this, "time")) {
	time = sp.getString("time", "没有找到相应的value");
	tian = sp.getString("tian", "没有找到相应的value");
	kemu = sp.getString("kemu", "没有找到相应的value");
	place = sp.getString("place", "没有找到相应的value");
	dstime = sp.getString("dstime", "没有找到相应的value");
			
	data.add(new DjS(kemu, time, place, dstime,tian ));
	DJSAdapter adapter = new DJSAdapter(data, this);
	setListAdapter(adapter);
} 

当我们这个数据使用完毕后,想要删除这些信息,可以写一个清除信息的方法

public static void clearData() {
	sp.edit().clear().commit();
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值