SharedPerferences存储

SharedPerferences存储

SharedPreferences是使用键值对的方式来存储数据的,SharedPreferences文件是使用XML格式来对数据进行管理的

将数据存储到SharedPreferences中

获取到SharedPreferences对象

  1. 使用Context类中的getSharedPreferences(String name, int mode)方法
    name参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则会创建一个,SharedPreferences文件都是存放在/data/data/(packageName)/shared_prefs目录下;mode参数指定操作模式,MODE_PRIVATE是默认的操作模式,表示只有当前的应用程序可以对这个SharedPreferences文件进行读写,MODE_MULTI_PROCESS则是一般用于多个应用程序对同一个SharedPreferences文件进行读写的情况
  • Activity类中的getPreferences(int mode)方法
    这个方法只接受一个模式参数,这个方法会自动将当前活动的类名做为SharedPreferences的文件名
  • PreferenceManager类中的getDefaultSharedPreferences(Context context)方法
    这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名做为前缀来命名SharedPreferences文件

向SharedPreferences文件中存储数据

  1. 调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象
  • SharedPreferences.Eidtor对象中添加数据,若添加布尔类型的就使用方法putBoolean(),添加一个字符串则使用putString()方法,以此类推

  • 调用commit()方法将添加的数据提交,从而完成数据存储工作
    调用clear()方法,将SharedPreferences文件中的数据全部清除掉

  • 存储代码如下:

    saveData = (Button)findViewById(ID);
    saveData.setOnClickListener(new OnClickListener(){
      @override
      public void onClick(View v){
        //拿到SharedPreferences文件的编辑器
        SharedPreferences.Eidtor editor = getSharedPreferences("data", MODE_PRIVATE).edit();
        //添加数据
        editor.putString("name", "xiao")
        editor.putInt("age", 28);
        editor.putBoolean("married", false);
        //提交数据,完成存储
        editor.commit();
      }
    });
    

导出数据图:


SharedPreferences

从SharedPreferences中读取数据

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

  • 代码如下:

    SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE);
    String name = pref.getString("name", "");
    int age = pref.getInt("age", 0);
    boolean married = pref.getBoolean("married", false);
    Log.d("MainActivity", "name is " + name);
    Log.d("MainActivity", "age is " + age);
    Log.d("MainActivity", "married is " + married);
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容