SharePerference 使用詳解

極力推薦文章:歡迎收藏
Android 乾貨分享 java

閱讀五分鐘,每日十點,和您一塊兒終身學習,這裏是程序員Android

本篇文章主要介紹 Android 開發中的部分知識點,經過閱讀本篇文章,您將收穫如下內容:android

  1. SharedPreferences的使用方法
  2. SharedPreferences保存數據的方法
  3. SharedPreferences讀取數據的方法
  4. 總結SharedPreferencesUtils 封裝類使用方法
  5. 小結

SharedPreferencesAndroid的一個接口類,是Android 數據存儲(保存內部)的一種方法。主要以*.xml 的形式保存在Android /data/data/com.***包名/shared_prefs下,SharedPreferences 類提供了一個通用框架,以便用戶可以保存和檢索原始數據類型的鍵值對,原始數據類型以下:BooleanIntFloatLongString程序員

1. SharedPreferences的使用方法

SharedPreferences 使用方法以下:微信

  1. 建立保存數據的xml文件
  2. 使用Editorxml文件中保存數據
  3. commit() 保存數據
  4. xml保存地方
    /data/data/com.***包名/shared_prefs

2. SharedPreferences 保存數據的方法

主要使用 putBoolean()putString()putInt()等方法添加值。app

3. SharedPreferences讀取數據的方法

主要使用 getBoolean() getString() getInt()等 獲取保存的數據框架

4. 總結SharePerference Utils 封裝類使用方法

移除SharePerference 保存的值

private static SharedPreferences sp;
    private static String SPXMLNAME = "sp_config";

    /**
     * @param ctx
     *            上下文環境
     * @param key
     *            要從config.xml移除節點的name的名稱
     */
    public static void removeKey(Context ctx, String key) {
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().remove(key).commit();
    }

保存,獲取 Boolean 類型值方法

// 1,存儲boolean變量方法
    public static void putBoolean(Context ctx, String key, boolean value) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().putBoolean(key, value).commit();
    }

    // 2,讀取boolean變量方法
    public static boolean getBoolean(Context ctx, String key, boolean defValue) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        return sp.getBoolean(key, defValue);
    }

保存,獲取 String類型值方法

public static void putString(Context ctx, String key, String value) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().putString(key, value).commit();
    }

    public static String getString(Context ctx, String key, String defValue) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        return sp.getString(key, defValue);
    }

保存,獲取 Int 類型值方法

//
    public static void putInt(Context ctx, String key, int value) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().putInt(key, value).commit();
    }

    public static int getInt(Context ctx, String key, int defValue) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        return sp.getInt(key, defValue);
    }

SharePerferenceUtils

package com.programandroid.Utils;

import android.content.Context;
import android.content.SharedPreferences;

/*
 * SharePerferenceUtils.java
 *
 *  Created on: 2017-9-24
 *      Author: wangjie
 * 
 *  Welcome attention to weixin public number get more info
 *
 *  WeiXin Public Number : ProgramAndroid
 *  微信公衆號 :程序員Android
 *
 */
public class SharePerferenceUtils {

    private static SharedPreferences sp;
    private static String SPXMLNAME = "sp_config";

    /**
     * @param ctx
     *            上下文環境
     * @param key
     *            要從config.xml移除節點的name的名稱
     */
    public static void removeKey(Context ctx, String key) {
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().remove(key).commit();
    }

    // 1,存儲boolean變量方法
    public static void putBoolean(Context ctx, String key, boolean value) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().putBoolean(key, value).commit();
    }

    // 2,讀取boolean變量方法
    public static boolean getBoolean(Context ctx, String key, boolean defValue) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        return sp.getBoolean(key, defValue);
    }

    public static void putString(Context ctx, String key, String value) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().putString(key, value).commit();
    }

    public static String getString(Context ctx, String key, String defValue) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        return sp.getString(key, defValue);
    }

    //
    public static void putInt(Context ctx, String key, int value) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        sp.edit().putInt(key, value).commit();
    }

    public static int getInt(Context ctx, String key, int defValue) {
        // name存儲文件名稱
        if (sp == null) {
            sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
        }
        return sp.getInt(key, defValue);
    }

}

Activity 類中使用方法以下:

1. 保存數據

保存數據調用方法以下:學習

SharePerferenceUtils.putInt(getApplicationContext(), "int_key", 1);

2. 獲取數據

獲取數據調用方法以下:spa

SharePerferenceUtils.getString(getApplicationContext(), "string_key", "default_values");

至此 SharedPreferences的使用方法以基本完成。3d

5. 小結

SharedPreferences 保存在app內部(/data/data/com.***包名/shared_prefs),當手動清除APK 數據的時候,保存的數據會被清除掉code

至此,本篇已結束,若有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!

微信關注公衆號:  程序員Android,領福利

相關文章
相關標籤/搜索