[Android] 使用JSON和SharedPreferences存储用户自定义类

先看一下Google官方对于SharedPreferences的定义:

The SharedPreferences class provides a general framework that allows you to save and retrieve persistent key-value pairs of primitive data types. You can use SharedPreferences to save any primitive data: booleans, floats, ints, longs, and strings. This data will persist across user sessions (even if your application is killed).

SharedPreferences可以用来永久地存储数据,即使应用被销毁。事实上数据存储在Android的内部存储器上。

有两种分方法用来获取SharedPreferences对象。 getSharedPreferences() - 当应用需要多个由名字区分的存储文件时,可以调用这个方法。getPreferences()-当应用只需要一个存储文件时,调用这个方法。

在SharedPreferences对象中写入数据,需要:

1.调用edit()方法获得一个SharedPreferences.Editor对象。

2.使用Editor对象的方法比如putBoolean()和putString()等将数据写入Editor。

3.使用Editor对象的方法commit()或apply()将数据提交。

读取SharedPreferences中的数据只需要调用SharedPreferences的方法如getBoolean()和getString().

下面是一个使用SharedPreferences存储数据的例子。

public class Calc extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);
       . . .

       // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       boolean silent = settings.getBoolean("silentMode", false);
       setSilent(silent);
    }

    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("silentMode", mSilentMode);

      // Commit the edits!
      editor.commit();
    }
}

 

posted @ 2015-06-08 15:06  msh  阅读(9211)  评论(1编辑  收藏  举报