Android的SharedPreferences實用技巧

來源:互聯網
上載者:User

標籤:

轉自:http://blog.csdn.net/jingfeizhu/article/details/10017779

SharedPreferences也是一種輕型的資料存放區方式,它的本質是基於XML檔案儲存體key-value索引值對資料,通常用來儲存一些簡單的配置資訊。其儲存位置在/data/data/<包名>/shared_prefs目錄下。SharedPreferences對象本身只能擷取資料而不支援儲存和修改,儲存修改是通過Editor對象實現。實現SharedPreferences儲存的步驟如下:
一、根據Context擷取SharedPreferences對象
二、利用edit()方法擷取Editor對象。
三、通過EditorObject Storage Servicekey-value索引值對資料。
四、通過commit()方法提交資料。

 1 public class MainActivity extends Activity { 2     @Override 3     public void onCreate(Bundle savedInstanceState) { 4        super.onCreate(savedInstanceState); 5        setContentView(R.layout.main); 6         7        //擷取SharedPreferences對象 8        Context ctx = MainActivity.this;        9        SharedPreferences sp = ctx.getSharedPreferences("pref", MODE_PRIVATE);10        //存入資料11        Editor editor = sp.edit();12        editor.putString("name", "jeff");13        editor.putInt("score", 0);14        editor.putBoolean("playagain", true);15        editor.commit();16        17     }18 }

上面的例子使用起來比較麻煩,這裡給出一種簡單的封裝方案:

 1 import java.util.Map.Entry; 2  3  4 import android.content.ContentValues; 5 import android.content.Context; 6 import android.content.SharedPreferences; 7  8  9 public class MyPreference {10 11     private static final String PREFERENCE_NAME = "my.db";12 13     private SharedPreferences mPreference;14 15     public MyPreference(Context ctx) {16         mPreference = ctx.getApplicationContext().getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);17     }18 19 20     public boolean putStringAndCommit(String key, String value) {21         return mPreference.edit().putString(key, value).commit();22     }23 24 25     public boolean putIntAndCommit(String key, int value) {26         return mPreference.edit().putInt(key, value).commit();27     }28 29     public boolean putBooleanAndCommit(String key, boolean value) {30         return mPreference.edit().putBoolean(key, value).commit();31     }32 33     public boolean putIntAndCommit(ContentValues values) {34         SharedPreferences.Editor editor = mPreference.edit();35         for (Entry<String, Object> value : values.valueSet()) {36             editor.putString(value.getKey(), value.getValue().toString());37         }38         return editor.commit();39     }40 41 42     public String getString(String key) {43         return getString(key, "");44     }45 46     public String getString(String key, String defValue) {47         return mPreference.getString(key, defValue);48     }49 50     public int getInt(String key) {51         return getInt(key, -1);52     }53 54 55     public int getInt(String key, int defValue) {56         return mPreference.getInt(key, defValue);57     }58 59     public boolean getBoolean(String key) {60         return getBoolean(key, false);61     }62 63     public boolean getBoolean(String key, boolean defValue) {64         return mPreference.getBoolean(key, defValue);65     }66 }

使用方式如下:

 1 public class MainActivity extends Activity { 2     @Override 3     public void onCreate(Bundle savedInstanceState) { 4        super.onCreate(savedInstanceState); 5        setContentView(R.layout.main); 6         7        MyPreference pref = new MyPreference(this); 8        pref.putStringAndCommit("name", "jeff"); 9        10     }11 }

Android的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.