zoukankan      html  css  js  c++  java
  • SharedPreferences的用法

    在Android开发过程中,有时候我们需要保存一些简单的软件配置等简单数据的信息,而如果我们直接用数据库存储的话又不太方便,在这里我们就可以用到SharedPreferences,SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此保存的数据主要是简单类型的键值对(key-value),它保存的是一个XML文件。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。

    SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,可以通过Context.getSharedPreferences(String name.int mode)来得到一个SharedPreferences实例

    name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data/<package name>/shared_prefs下(这个面试常问到)

    mode:是指定读写方式,其值有三种,分别为:

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

    Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写

    Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。

    package cn.test.service;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    
    public class PreferencesService {
        private Context context;
        
        public PreferencesService(Context context) {
            this.context = context;
        }
        /**
         * 保存参数
         * @param name 姓名
         * @param age 年龄
         */
        public void save(String name, Integer age) {
            SharedPreferences preferences = context.getSharedPreferences("itcast", Context.MODE_PRIVATE); 
            Editor editor = preferences.edit();
            editor.putString("name", name);
            editor.putInt("age", age);
            editor.commit();
        }
        /**
         * 获取各项配置参数
         * @return
         */
        public Map<String, String> getPreferences(){
            Map<String, String> params = new HashMap<String, String>();
            SharedPreferences preferences = context.getSharedPreferences("itcast", Context.MODE_PRIVATE);
            params.put("name", preferences.getString("name", ""));
            params.put("age", String.valueOf(preferences.getInt("age", 0)));
            return params;
        }
    }
  • 相关阅读:
    详细聊聊k8s deployment的滚动更新(一)
    更新k8s镜像版本的三种方式
    深入理解docker信号机制以及dumb-init的使用
    10分钟教你理解反射
    nodejs的交互式解释器模式常用命令
    nrm的安装和使用
    复杂sql语句之单字段分类count计数和多字段count计数
    navicat连接mysql出现2059
    mongodb常规操作语句
    System.Web.NullPointerException
  • 原文地址:https://www.cnblogs.com/xiang1336/p/3736883.html
Copyright © 2011-2022 走看看