安卓本地化之SharedPreferences

來源:互聯網
上載者:User

標籤:具體類   tool   editor   reference   etl   操作   import   nbsp   author   

SharedPreferences的本質是基於XML檔案儲存體key-value索引值對資料,通常用來儲存一些簡單的配置資訊,用Sqlite資料庫來存放並不划算,因為資料庫連接跟操作等耗時大大影響了程式的效率。其儲存位置在/data/data/<包名>/shared_prefs目錄下。

儲存資料資訊

1)開啟名為configuration的設定檔,如果存在則開啟它,否則建立新的名為configuration的設定檔

SharedPreferences sharedPreferences = context.getSharedPreferences("FILE_NAME", 0);

2)讓sharedPreferences處於編輯狀態

SharedPreferences.Editor editor = sharedPreferences.edit();

3)存放資料

editor.putString("key","value");

4)完成提交

editor.commit();

讀取資料資訊

1)開啟名為configuration的設定檔

SharedPreferences sharedPreferences = getSharedPreferences("FILE_NAME", 0);

2)擷取資料

String name = sharedPreferences.getString("key","預設值");

以上就是Android中SharedPreferences的使用方法,其中建立的設定檔存放位置可以在Eclipse中查看:DDMS --- File Explorer --- data/data/<package name>/shared_prefs/configuration.xml

封裝成Util類

package com.autumn.tools;import android.content.Context;import android.content.SharedPreferences;import android.util.Log;import com.autumn.bookandroid.MyApplication;import com.autumn.pojo.Users;/** * SharedPreferences的一個工具類,調用setParam就能儲存String, Integer, Boolean, Float, Long類型的參數 * 同樣調用getParam就能擷取到儲存在手機裡面的資料 * @author xiaanming * */public class SharedPreferencesUtils {    /**     * 儲存在手機裡面的檔案名稱     */    private static final String FILE_NAME = "share_date";    /**     * 儲存資料的方法,我們需要拿到儲存資料的具體類型,然後根據類型調用不同的儲存方法     * @param context     * @param key     * @param object     */    public static void setParam(Context context , String key, Object object){        String type = object.getClass().getSimpleName();        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sp.edit();        if("String".equals(type)){            editor.putString(key, (String)object);        }        else if("Integer".equals(type)){            editor.putInt(key, (Integer)object);        }        else if("Boolean".equals(type)){            editor.putBoolean(key, (Boolean)object);        }        else if("Float".equals(type)){            editor.putFloat(key, (Float)object);        }        else if("Long".equals(type)){            editor.putLong(key, (Long)object);        }        editor.commit();    }    /**     * 得到儲存資料的方法,我們根據預設值得到儲存的資料的具體類型,然後調用相對於的方法擷取值     * @param context     * @param key     * @param defaultObject     * @return     */    public static Object getParam(Context context , String key, Object defaultObject){        String type = defaultObject.getClass().getSimpleName();        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);        if("String".equals(type)){            return sp.getString(key, (String)defaultObject);        }        else if("Integer".equals(type)){            return sp.getInt(key, (Integer)defaultObject);        }        else if("Boolean".equals(type)){            return sp.getBoolean(key, (Boolean)defaultObject);        }        else if("Float".equals(type)){            return sp.getFloat(key, (Float)defaultObject);        }        else if("Long".equals(type)){            return sp.getLong(key, (Long)defaultObject);        }        return null;    }    /**     * 刪除某個key對應的資料     * */    public static void remove(Context context ,String key){        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sp.edit();        editor.remove(key);        editor.commit();    }    /**     * 刪除全部資料     * */    public static void clear(Context context){        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sp.edit();        editor.clear();        editor.commit();    }    /*********************************本項目使用*********************************/    /**    * @Description: 擷取登入全域使用者資訊    * @Param:    * @return:    * @Author: qiuyu    * @Date: 2018/8/13    */    public static Users getUserInfo(){        //擷取登入資訊        String userInfo = SharedPreferencesUtils.getParam(MyApplication.getContextObject(),"user","").toString();        if (userInfo!=null&&!userInfo.trim().isEmpty()){            JsonUtil<Users> jsonUtil1 = new JsonUtil<Users>();            Users user = jsonUtil1.jsonToObject(userInfo,Users.class);            Log.i("讀取個人資訊成功",user.toString());            return user;        }else {            return null;        }    }}

 

 

安卓本地化之SharedPreferences

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.