Android 存儲數據SharedPreferences詳解

在Android應用開發中,需要經常保存一些用戶對於自己軟件的設置,所以,Android平臺給我們提供了一個SharedPreferences類,它是一個輕量級應用程序內部輕量級的存儲方案,特別適合用於保存軟件配置參數

SharedPreferences:
1、是一種輕型的數據存儲方式
2、本質是基於XML文件存儲key-value鍵值對數據
3、Android中常用來存儲一些簡單的配置文件

其實,SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲和修改是通過Editor對象實現的。

具體的實現步驟:

實現SharedPreferences存儲步驟:
(1)獲取SharedPreferences對象
    獲取SharedPreferences對象的兩種方法:
        1、使用Activity的getSharedPreferences()//這個方法也是比較常用的
        2、使用PreferenceManager中的getDefaultSharedPreferences()方法,不能自己定義XML文件名和文件權限。
(2)獲取SharedPreferences.Editor對象(因爲SharedPreferencesd對象不能直接進行存儲,存儲實現通過Editor對象實現)
(3)通過Editor接口的putXxxx方法保存
(4)通過Editor.commit提交//這個一定要記得,不然數據保存提交不上

這裏我做了個簡單的demo,就是兩個Button一個存入數據,一個顯示數據。
效果圖:
這裏寫圖片描述
這裏寫圖片描述
源碼如下:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initEvent();

    }

    /**
     * 初始化控件
     */
    private void initView() {
        logdata = (Button) findViewById(R.id.log_data);
        readdata = (Button) findViewById(R.id.read_data);
    }

    /**
     * 建立點擊事件
     */
    private void initEvent() {
        logdata.setOnClickListener(this);
        readdata.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.log_data:
            putData();
            break;
        case R.id.read_data:
            getData();
            break;
        }

    }

    /**
     * 顯示存入的記錄
     */
    private void getData() {
        Toast.makeText(
                this,
                "名字是" + preferences.getString("name", "") + ",年齡是"
                        + preferences.getInt("age", 0), Toast.LENGTH_SHORT)
                .show();

    }

    /**
     * 通過按鍵存入數據
     */
    private void putData() {
        /*
         * 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數據能被其他應用程序讀寫。
         */
        preferences = getSharedPreferences("mydata", MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putString("name", "王五");
        editor.putInt("age", 20);
        // commit()提交
        editor.commit();
        Toast.makeText(this, "存入數據成功", Toast.LENGTH_SHORT).show();
    }

希望對初學者有幫助~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章