android学习---SharedPreferences存储

     今天我们再来看一下SharedPreferences存储,不同于文件的存储方式,SharedPreferences存储是使用键值对的方式来存储数据的。而且SharedPreferences还支持多种不同的数据类型存储,如果存储的数据类型是整型,则读取出来的数据也是整型的;如果存储的数据时一个字符串,那么读取出来的数据仍然是字符串。 

    使用SharedPreferences来进行数据持久化要比使用文件方便很多。

将数据存储到SharedPreferences中

步骤:
1.获得使用 SharedPreferences 对象 注:接收两个参数,第一个参数用于指定SharedPreferences文件的名称,第二个参数用于指定操作模式。目前只有MODE_PRIVATE这一种模式可选,它是默认的操作模式,其他几种操作模式均已被废弃。
2.获得Editor对象
3.通过Editor对象的putXXX函数,设置写入数据
4.通过Editor对象的commit()提交写入
@Override
			public void onClick(View arg0) {
				String name = editTextuser.getText().toString();
				String psw = editTextpsw.getText().toString();

				// 获取SharedPreferences对象
				SharedPreferences spf = getSharedPreferences("user_data",
						Context.MODE_PRIVATE);
				// 获取Editor对象
				Editor editor = spf.edit();
				// 写入数据
				editor.putString("username", name);
				editor.putString("psw", psw);
				// 判断是否选择复选框
				if (check.isChecked()) {
					editor.putBoolean("check_state", true);
				} else {
					editor.putBoolean("check_state", false);
				}

				// 提交
				editor.commit();

			}

从SharedPreferences中读取数据

      SharedPreferences对象中提供了一系列的get方法,用于对存储的数据进行读取,每种get方法都对应了SharedPreferences.Editor中的一种put方法,比如读取布尔型数据就使用getBoolean()方法。这些get方法都接受两个参数,第一个参数是键,传入存储数据时使用的键就可以得到相应的值了;第二个参数是默认值,即表示当传入的键找不到对应的值时会以什么样的默认值进行返回。

@Override
	protected void onResume() {
		super.onResume();
		// 获取SharedPreferences对象
		SharedPreferences spf = getSharedPreferences("user_data",
				Context.MODE_PRIVATE);
		// 取值
		String name = spf.getString("username", "");
		String password = spf.getString("psw", "");
		boolean ckState = spf.getBoolean("check_state", false);

		if (ckState) {
			editTextuser.setText(name);
			editTextpsw.setText(password);
			check.setChecked(true);

		}
	}



注:Android主要提供了3种方法用于得到SharedPreferences对象。

1.Context类中的getSharedPreferences()方法。
这个方法接收两个参数,第一个参数用于指定SharedPreferences文件的名称,第二个参数用于指定操作模式。目前只有MODE_PRIVATE这一种模式可选,它是默认的操作模式,其他几种操作模式均已被废弃。
2.Activity类中的getPreferences()方法。
这个方法和 Context类中的getSharedPreferences()方法很相似,不过它只接收一个 操作模式参数,因为使用这个方法时会自动将当前活动的类名作为Sharedpreferences的文件名
3.PreferenceManager类中getDefaultSharedPreferences()方法。
 这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。




  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值