Android主要提供了3种方法用于得到 SharedPreferences 对象:
- Context类中的 getSharedPreferences() 方法
- Activity类中的getPreference() 方法
- PreferenceManager类中的 getDefaultSharePreference() 方法
Context类中的 getSharedPreferences() 方法
两个参数:
第1个用于指定SharedPreference 文件的名称,如果指定的文件不存在则会创建一个。第2个参数用于指定操作模式,两种模式可选择:
- MODE_PRIVATE : 默认操作模式,和直接传入 0 效果相同;
- MODE_MULTI_PROCESS : 一般用于多个进程中对同一个 SharedPreference 文件进行读写的情况。
Activity类中的getPreference() 方法
只接收一个操作模式,因为使用这个方法时会自动将当前Activity的类名作为 SharedPreference 的文件名。
PreferenceManager类中的 getDefaultSharePreference() 方法
静态方法,接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreFerences 文件。
得到 SharedPreferences 对象后,开始向 SharedPreferences 文件中存储数据了,主要分3步:
- 调用 SharedPreference 对象的 edit() 方法来获取一个 SharedPreference.Editor 对象;
- 向 SharedPreference.Editor 对象中添加数据,比如添加一个boolean型数据就使用putBoolean 方法,添加一个字符串则使用putString() 方法;
- 调用 commit9() 方法将添加的数据提交,完成数据存储。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| public class MainActivity extends AppCompatActivity {
private Button bt_get; private Button save;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
bt_get = (Button)findViewById(R.id.bt_get); save = (Button)findViewById(R.id.save);
save.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {
SharedPreferences.Editor editor = getSharedPreferences("data" , MODE_PRIVATE).edit();
editor.putString("name" , "huanglong"); editor.putBoolean("married", false); editor.putInt("age", 13); editor.commit();
bt_get.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { SharedPreferences btget = getSharedPreferences("data" , MODE_PRIVATE); String name = btget.getString("name", ""); int age = btget.getInt("age", 0); Boolean married = btget.getBoolean("married" , false); Log.d("ManActivity" , "name is" +name); Log.d("ManActivity" , "age is" +age); Log.d("ManActivity" , "married" +married);
} }); } }); }
}
|