sharedpreferences保存用户设置

刚开始做安卓,经常看一些视频书籍什么的,但是看完是没有什么印象的,写这篇博客以来是为了自己能记住,另外就是如果有想学的或者也是刚做没多久的朋友可以看一下

sharedpreferences在安卓app中大多是为了来保存用户设置的,一般以键值对的方式来保存。

既然说到了键值对,第一,你的键和值要匹配这个不要写错了,第二就是咱们怎样放进去,然后拿出来。

1/先说保存,记住三部通过edit()获取一个Sharedpreferences的Editor对象,然后通过put方法将你的值保存或者覆盖到文件中,最后,千万别忘记通过commit来提交,不提交是不会保存的!

多的不说,边看代码边理解吧:先说怎么通过sharedprefences来保存(假设点击bt_start按钮来开始)

bt_start.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				SharedPreferences sp = getSharedPreferences("shezhi",MODE_PRIVATE);
				Editor editor = sp.edit();
				editor.putString("music", "bigMisic");
				editor.putBoolean("bgMusic", true);
				editor.commit();
				
			}
		});
通过这样的方式我们就把我们的设置music和bgMusic他们的值就保存下来了,如果你想看是不是保存了,或者保存到哪里了,ok打开你的DDMS,在File Explorer下——>data——>data——>找到你这个的包名,里面有个文件夹是shared_prefs,里面那个文件的名字就是我们getSharedPreferences中的第一个参数shezhi。你可以把这个文件导出,打开来看:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="music">bigMisic</string>
    <boolean name="bgMusic" value="true" />
</map>
也就是说我们的设置内容已经保存下来了,其中getSharedFreferences()方法中第二个参数,自己可以把鼠标放到这个方法上看里面的参数是什么意思,MODE_PRIVATE和0是一个意思  就是私有的,只供我们自己来读写。这样的话我们设置完保存就会了,那等我们重新打开这个app或者说我们重新开机之后这个设置还是我们保存的那一个吗,我可以确定的说,是的,但是我们还需要再打开的时候读取一下我们的设置!


2/读取我们的设置

这里我假设bt_stop来读取我们的设置,当然我们在写app的时候,这个读取是我们特别要注意的地方,可能说我们刚打开这个app的时候就有相关设置比方说声音,假设加载前的界面有音乐,使用过程中有音乐,当然设置里面还有音乐的相关设置,这些个地方都是要进行读取的,并不是说我们打开相关设置里面才会有,现在的app在安卓方面已经做得很成熟了,(其实我都感觉熟透了--.)所以说,在你们的生命周期内,像activity中可能有,我们的服务,你的声音service中,可能都会有,一定要考虑全面,这也是我们做程序员的逻辑思维一定要清晰。

bt_stop.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				SharedPreferences sp1 = getSharedPreferences("shezhi", 0);
				String music = sp1.getString("music", "默认值");
				boolean bgMusic = sp1.getBoolean("bgMusic", true);
				tv.setText("设置的值是:"+music+","+bgMusic);
			}
		});
这里你不用管sp还是sp1 sp2 的   只要你的key是对的是shezhi就行,后面那个0意思和private一样私有的意思,类型看清然后选择get方法,其中get方法中是有两个参数的,第一个是Key我们都知道  那第二个呢,就不是设置了,是你在没有保存过设置的情况下的一个默认值。这样的话我们在做一个有设置的app的时候,或者需要保存键值对这种形式的时候,就能用到sharedpreferences了, 其中还有一点!使用这个只能保存一些基本类型的参数,像string ,boolean ,int ,char之类的。


这样以后再做app时视情况而定是需要在哪保存,在那些地方需要打开这些设置,只要做全面了这些,相信就没有问题了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值