Android之SharedPreferences详解

本文介绍了如何使用Android系统的SharedPreferences接口来存储和获取简单的key-value对数据,包括如何使用各种方法进行读取和写入操作,并详细展示了在string_infos.xml文件中存储数据的过程以及在代码中实现数据存储和获取的方法。
摘要由CSDN通过智能技术生成

    SharedPreferences保存的数据只要是简单类型的key-value对

        SharedPreferences接口主要负责读取应用程序的Preferences数据,有如下方法来访问SharedPreferences中的key-value对。

--》1.boolean contains(String key);判断SharedPreferences是否包含特点key的数据。

--》2.abstract Map<String, ?>  getAll();  获取SharedPreferences数据里全部的key-value对。

--》3.boolean getXxx(String key, xxx defValue);获取SharedPreferences里指定key的value,xxx可以是boolean、float、int、long、String等各种基本类型。


        SharedPreferences接口并没有提供写入数据的能力,而是通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象,Editor提供了如下方法来向SharedPreferences写入数据。

--》1.SharedPreferences.Editor clear();清空SharedPreferences里所有数据。

--》2.SharedPreferences.Editor putXxx(String key, xxx value);

--》3.SharedPreferences.Editor remove(String key);删除指定key对应的数据项。

--》4.boolean commit();当Editor编辑完成后,调用该方法提交修改。


        SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode);方法来获取SharedPreferences实例,该方法第二个参数的支持如下几个值:

Context.MODE_PRIVATE:        指定SharedPreferences数据只能被本应用程序读写。

Context.MODE_WORLD-READABLE:        指定该SharedPreferences数据能被其它应用程序读,但不能写。

Context.MODE_WORLD_WRITEABLE:        同反


信息存储位置:


将string_infos.xml文件导出,查看如下:

[html]  view plain copy
  1. <?xml version='1.0' encoding='utf-8' standalone='yes' ?>  
  2. <map>  
  3. <string name="username">zhangsan</string>  
  4. <string name="userpassword">123</string>  
  5. <boolean name="open" value="true" />  
  6. <int name="count" value="23" />  
  7. <float name="PI" value="3.1415926" />  
  8. </map>  


下面是在SharedPreference中存储和获取数据的代码:

[java]  view plain copy
  1. public static void saveInfo(Context context, String userName, String userPass){  
  2.         SharedPreferences sp = context.getSharedPreferences("login", Context.MODE_PRIVATE);  
  3.         Editor ed = sp.edit();  
  4.         ed.putString("username", userName);  
  5.         ed.putString("userpassword", userPass);  
  6.         ed.commit();  
  7.     }  
  8.       
  9.     public static Map<String,String> getUserInfo(Context context){  
  10.           
  11.         SharedPreferences sp = context.getSharedPreferences("login", Context.MODE_PRIVATE);  
  12.         String name = sp.getString("username"null);  
  13.         String pass = sp.getString("userpassword"null);  
  14.           
  15.         Map<String, String> map = new HashMap<String, String>();  
  16.         map.put("username", name);  
  17.         map.put("userpass", pass);  
  18.         return map;  
  19.     }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值