Training--保存数据(1)-- 保存键值对集合
2014-07-10 17:16
183 查看
保存数据(1)-- 保存键值对集合
如果你有一些相对少量的键值对形式的数据需要保存的话,你应该使用SharedPreferences接口。一个SharedPreferences对象指向一个保存了键值对的文件,并且提供一些简单方法读取和写入键值对数据。每一个SharedPreferences文件都由framework管理,它可以是私有的也可以是共享的。
本课程教你如何使用SharedPreferences接口来存储和读取简单的值。
获得一个指向SharedPreference的句柄
你可以使用下面两个方法中的一个来创建一个新的共享喜好文件或者访问一个已经存在的:
getSharedPreferences() – 如果你需要一个可以多处共享的喜好文件,那么你就使用这个接口,你可以在第一个参数中指定文件名。你可以在你的应用中使用任何Context引用来调用这个接口。
getPreferences() – 如果你需要一个仅共当前activity使用的单共享喜好文件的话,你可以使用这个接口。因为这个接口返回一个属于当前activity的默认喜好文件,所以你不需要提供文件名。
例如,下面是一段在某个fragment中执行的代码。它访问一个由资源字符串R.string.preference_file_key标识的喜好文件,使用私有模式打开,这样这个文件只能被你的应用使用。
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
当命名你的共享喜好文件时,你应该使用一个对于你的应用来说独一无二的名字,比如“com.example,myapp.PREFERENCE_FILE_KEY”。当然了,如果你需要一个仅对当前的activity服务的单共享喜好文件的话,你可以使用getPreferences()接口:
注意:如果你在创建共享的喜好文件时,使用MODE_WORLD_READABLE或MODE_WORLD_WRITABLE模式,那么其他应用如果知道这个喜好文件的名字,他们都是可以访问你的数据的。
写入共享喜好
为了写入共享喜好文件,需要调用SharedPreferences的edit()方法创建一个SharedPreferences.Editor。
使用诸如putInt()和putString()这种形式的方法通过传递键和值写入数据。然后调用 commit()保存数据。例如:
读取共享喜好
为了从共享喜好文件中读取数据,调用方法如getInt()和getString(),提供想读取的数据的键值,一个备选的默认返回值。当你提供的键值不存在时,就会返回这个默认值。例如:
如果你有一些相对少量的键值对形式的数据需要保存的话,你应该使用SharedPreferences接口。一个SharedPreferences对象指向一个保存了键值对的文件,并且提供一些简单方法读取和写入键值对数据。每一个SharedPreferences文件都由framework管理,它可以是私有的也可以是共享的。
本课程教你如何使用SharedPreferences接口来存储和读取简单的值。
获得一个指向SharedPreference的句柄
你可以使用下面两个方法中的一个来创建一个新的共享喜好文件或者访问一个已经存在的:
getSharedPreferences() – 如果你需要一个可以多处共享的喜好文件,那么你就使用这个接口,你可以在第一个参数中指定文件名。你可以在你的应用中使用任何Context引用来调用这个接口。
getPreferences() – 如果你需要一个仅共当前activity使用的单共享喜好文件的话,你可以使用这个接口。因为这个接口返回一个属于当前activity的默认喜好文件,所以你不需要提供文件名。
例如,下面是一段在某个fragment中执行的代码。它访问一个由资源字符串R.string.preference_file_key标识的喜好文件,使用私有模式打开,这样这个文件只能被你的应用使用。
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
当命名你的共享喜好文件时,你应该使用一个对于你的应用来说独一无二的名字,比如“com.example,myapp.PREFERENCE_FILE_KEY”。当然了,如果你需要一个仅对当前的activity服务的单共享喜好文件的话,你可以使用getPreferences()接口:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
注意:如果你在创建共享的喜好文件时,使用MODE_WORLD_READABLE或MODE_WORLD_WRITABLE模式,那么其他应用如果知道这个喜好文件的名字,他们都是可以访问你的数据的。
写入共享喜好
为了写入共享喜好文件,需要调用SharedPreferences的edit()方法创建一个SharedPreferences.Editor。
使用诸如putInt()和putString()这种形式的方法通过传递键和值写入数据。然后调用 commit()保存数据。例如:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
读取共享喜好
为了从共享喜好文件中读取数据,调用方法如getInt()和getString(),提供想读取的数据的键值,一个备选的默认返回值。当你提供的键值不存在时,就会返回这个默认值。例如:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
相关文章推荐
- 安卓训练-开始-保存数据-保存键值对集合
- 【Android Training - 04】保存数据 [ Lesson 0 - 章节概览 ]
- 【Android Training - 04】保存数据 [ Lesson 2 - 保存文件]
- Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
- Hibernate学习-6-集合映射保存和集合数据获取案例
- 键值对集合Dictionary<K,V>根据索引提取数据
- 根据对象批量获取页面数据迭代保存到集合中
- Android官方Training学习——在SQL数据库中保存数据
- Android官方开发文档Training系列课程中文版:数据存储之键值对序列存储
- Android将list数据通过LitePal保存到本地(集合保存到本地)
- SSH框架之Hibernate的List集合映射、数组映射、List集合的数据保存
- 【Android Training - 04】保存数据 [ Lesson 3 - 保存数据到SQLite]
- 类数据[Android Training视频系列] 6.3 Saving Data in SQL Databases(保存数据到SQLite)
- [Android Training视频系列] 6.3 Saving Data in SQL Databases(保存数据到SQLite)
- 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
- linux下用cjson实现对数据键值对的封装保存
- 【Android Training - 04】保存数据 [ Lesson 1 - 保存Key-Value]
- 保存数据 之 键值对的设置
- Training--保存数据(3)-- 在SQL数据库中保存数据
- Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性