• SharedPreferences


     

    偏好设定(SharedPreferences)Ÿ

       在程序中保存一些配置参数的时候我们经常使用SharedPreferences

    Context.getSharedPreferences(String name,int mode)

    该方法可以在/data/data/<package>/shared_pref/目录下创建一个以name命名的xml文件,mode文件为模式

    SharedPreferences的四种操作模式:
    Context.MODE_PRIVATE
    Context.MODE_APPEND
    Context.MODE_WORLD_READABLE
    Context.MODE_WORLD_WRITEABLE
     
    Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
    Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
    Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
    MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
    MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

    Ÿ   存储偏好

    调用edit()方法可以获取一个Editor对象,对数据进行存储,存储之后需要调用commit()保存到文件

    复制代码
        public void save(View view) {
    String name = nameET.getText().toString();
    String address = addressET.getText().toString();
    String phone = phoneET.getText().toString();
    String age = ageET.getText().toString();

    // 偏好设定,xml 文件保存在 shared_pref 目录下
    // 获取SharedPreferences, 文件名不要指定扩展名
    // SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
    // 匿名方式,文件名和Activity名一致
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    Editor editor = preferences.edit(); // 获取编辑器,保证事务的原子性

    try {
    editor.putString("name", name);
    editor.putString("address", address);
    editor.putString("phone", phone);
    editor.putInt("age", Integer.valueOf(age));
    editor.commit(); // 提交数据, 保存到文件
    Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_LONG).show();
    } catch (Exception e) {
    e.printStackTrace();
    editor.clear(); // 提交数据, 保存到文件
    Toast.makeText(getApplicationContext(), "保存失败", Toast.LENGTH_SHORT).show();
    }
    }
    复制代码

    Ÿ   读取偏好

    获得SharedPreferences之后调用getString()、getInt()等方法获取其中设置的值

    Ÿ   在Activity中获取SharedPreferences

    在Activity中可以调用getPreferences(int mode)方法获得一个SharedPreferences,文件名和Activity名一致

    复制代码
        private void loadData() {
    // 指定文件名
    // SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
    // 匿名方式
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    String name = preferences.getString("name", "");
    String address = preferences.getString("address", "");
    String phone = preferences.getString("phone", "");
    String age = String.valueOf(preferences.getInt("age", 20));
    nameET.setText(name);
    addressET.setText(address);
    phoneET.setText(phone);
    ageET.setText(age);
    }
    复制代码
  • 相关阅读:
    kittle入门之文本文件导入数据库
    关于java的杂乱无章(续更)
    SpringBoot+Mybatis+redis实现二级缓存
    Spring AOP面向切面编程,监听某个方法
    xxl-job编写GULE(Java)运行模式,带执行参数(url)
    java后台解决跨域问题
    Spring Boot+JWT+Spring Security实现授权认证保护Rest API
    Java中的23种设计模式之——访问者(Visitor)模式(7)
    Java中的23种设计模式之——策略(Stragedy)模式(6)
    Java中的23种设计模式之——生成器(Builder)模式(5)
  • 原文地址:https://www.cnblogs.com/xgjblog/p/3866113.html
Copyright © 2020-2023  润新知