Android笔记之数据存储(SharedPreferences)

SharedPreferences存储:使用键值对的方式来存储数据。也就是说当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把对应的值取出来。

使用SharedPreferences存储,首先要获取到SharedPreferences对象。
获取对象有三种方法:


1.Context类的getSharedPreferences()方法。

此方法接收两个参数,第一个参数用于指定文件名称,如果不存在就会创建一个。
第二个参数用于指定操作模式,主要有两种模式可以选择。
MODE_PRIVATE:默认操作模式,和直接传入0效果相同。表示只有当前的应用程序才可以对此文件进行读写。
MODE_MULTI_PROCESS:一般用于会有多个进程中对一个文件进行读写的情况。

2.Activity类中的getPreferences()方法。
此方法和第一种方法很相似,不过只接收一个操作模式参数,因为使用此方法会自动将当前活动的类名作为文件名。

3.PreferenceManager类中的getDefaultSharedPreferences()方法。
这是一个静态方法,他接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名文件。

得到对象之后,就可以开始向SharedPreferences文件存储数据。主要分为三部实现。


1.调用对象的edit()方法来获取一个SharedPreferences.Editor对象。


2.向SharedPreferences.Editor对象中添加数据。
比如添加boolean数据就使用putBoolean()方法,添加字符串就使用putString()方法,以此类推。

3.调用commit()方法将添加的数据提交,从而完成数据存储操作。


示例代码:

saveData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
	    //直接通过getSharedPreferences()方法,并传入指定文件名和操作模式,创建一个匿名对象。
	    //再利用匿名对象的.edit()方法获取 SharedPreferences.Editor对象,命名为editor。
                SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit();
		//调用editor的putString()方法和putInt()等方法添加数据。
		//添加数据时需要传入两个参数,都是键值对。
                editor.putString("name","Tom");
                editor.putInt("age",28);
                editor.putBoolean("married",false);
		//调用commit()方法提交数据。
                editor.commit();
            }
        });
以上是利用SharedPreferences存储数据。

从SharedPreferences中读取数据:
理解起来相当简单,可以直接看示例代码:
 restoreData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
	    //创建SharedPreferences对象,并传入键值对。
                SharedPreferences preferences=getSharedPreferences("data", MODE_PRIVATE);
		//直接调用get***()方法获取,对应其数据类型即可。
		//该方法接收两个参数,第一个是键,第二个是默认值。表示传入的键没有对应的值时,以什么值返回。注意的是,获取数据时,不需要在创建SharedPreferences.editor对象。
                String name=preferences.getString("name", "");
                int age=preferences.getInt("age", 0);
                boolean married=preferences.getBoolean("married",false);

                Log.d("MainActivity","name:"+name);
                Log.d("MainActivity","age:"+age);
                Log.d("MainActivity","married:"+married);
            }
        });
以上是从SharedPreferences中读取数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值