一、数据存储选项:Data Storage ——Storage Options【重点】
-
1、Shared Preferences
- Store private primitive data in key-value pairs.
- 保存简单的键值对数据。 2、Internal Storage
- Store private data on the device memory.
- 在手机内存中保存不对外共享的信息。 3、External Storage
- Store public data on the shared external storage.
- 在外部存储设备上保存公共的数据信息。主要指保存在SDCard上。 4、SQLite Databases
- Store structured data in a private database.
- 将结构化的数据保存进数据库。 5、Network Connection
- Store data on the web with your own network server.
- 将数据保存到自己的远程服务器上。
二、SharedPreferences:
(一)、概念:
SharedPreferences是Android系统提供的一个通用的数据持久化框架,用于存储和读取key-value类型的原始基本数据类型对,目前支持string、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法使用SharedPreferences来存储。
SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名,上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。
(二)、使用SharedPreferences的步骤:
1、获取SharedPreferences对象;
SharedPreferences本身是一个接口,无法直接创建实例,通过Context的getSharedPreferences(String name, int mode)方法来获取实例。
该方法的第二个参数有以下三个值:【文件读写的操作模式】
- Context.MODE_PRIVATE: 指定该SharedPreferences的数据只能被本应用程序读、写;
- Context.MODE_APPEND:新内容追加到原内容后;
- Context.MODE_WORLD_READABLE: 指定 SharedPreferences数据能被其他应用程序读,但是不支持写;
- Context.MODE_WORLD_WRITEABLE: 指定 SharedPreferences数据能被其他应用程序读、写。会覆盖原数据。
- 可以使用 + 连接这些权限。
2、调用edit()方法获取SharedPreferences.Editor;
3、通过SharedPreferences.Editor接口提供的put()方法对SharedPreferences进行更新;
4、调用SharedPreferences.Editor的commit()方法,将更新提交到SharedPreferences中。
(三)、核心代码:
采用
SharedPreferences写入文件
采用
SharedPreferences读取文件
(四)、保存之后的SharedPreferences数据文件:
SharedPreferences数据总是以xml格式保存在:/data/data/包名/shared_prefs目录下;
例如:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="pwd">123456</string>
<string name="username">xiangjun</string>
<int name="age">20</int>
</map>
(四)、SharedPreferences的设置Setting功能:
1、引入:
手机中常有这样的设置页面,如果做这样的页面呢?是不是需要写一个复杂的布局文件,再写一堆事件监听来完成呢?
2、PreferenceActivity的简单用法:
1)、步骤:
- 将setting.xml文件放到res的xml目录下;
- 将arrays.xml文件放到values目录下;
- 写一个页面SettingActivity。
2)、目录结构:
3)、核心代码:
//在SettingActivity中。不再需要setContentView(R.layout.activity_main)方法来加载布局了。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
addPreferencesFromResource(R.xml.setting);
//备注:This method was deprecated in API level 11. This function is not relevant for a modern fragment-based PreferenceActivity.这个方法在11版本以上就已经不推荐使用了。
}
Android数据存储——SharedPreferences
一、数据存储选项:Data Storage ——Storage Options【重点】
-
1、Shared Preferences
- Store private primitive data in key-value pairs.
- 保存简单的键值对数据。 2、Internal Storage
- Store private data on the device memory.
- 在手机内存中保存不对外共享的信息。 3、External Storage
- Store public data on the shared external storage.
- 在外部存储设备上保存公共的数据信息。主要指保存在SDCard上。 4、SQLite Databases
- Store structured data in a private database.
- 将结构化的数据保存进数据库。 5、Network Connection
- Store data on the web with your own network server.
- 将数据保存到自己的远程服务器上。
二、SharedPreferences:
(一)、概念:
SharedPreferences是Android系统提供的一个通用的数据持久化框架,用于存储和读取key-value类型的原始基本数据类型对,目前支持string、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法使用SharedPreferences来存储。
SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名,上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。
(二)、使用SharedPreferences的步骤:
1、获取SharedPreferences对象;
SharedPreferences本身是一个接口,无法直接创建实例,通过Context的getSharedPreferences(String name, int mode)方法来获取实例。
该方法的第二个参数有以下三个值:【文件读写的操作模式】
- Context.MODE_PRIVATE: 指定该SharedPreferences的数据只能被本应用程序读、写;
- Context.MODE_APPEND:新内容追加到原内容后;
- Context.MODE_WORLD_READABLE: 指定 SharedPreferences数据能被其他应用程序读,但是不支持写;
- Context.MODE_WORLD_WRITEABLE: 指定 SharedPreferences数据能被其他应用程序读、写。会覆盖原数据。
- 可以使用 + 连接这些权限。
2、调用edit()方法获取SharedPreferences.Editor;
3、通过SharedPreferences.Editor接口提供的put()方法对SharedPreferences进行更新;
4、调用SharedPreferences.Editor的commit()方法,将更新提交到SharedPreferences中。
(三)、核心代码:
采用
SharedPreferences写入文件
采用
SharedPreferences读取文件
(四)、保存之后的SharedPreferences数据文件:
SharedPreferences数据总是以xml格式保存在:/data/data/包名/shared_prefs目录下;
例如:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="pwd">123456</string>
<string name="username">xiangjun</string>
<int name="age">20</int>
</map>
(四)、SharedPreferences的设置Setting功能:
1、引入:
手机中常有这样的设置页面,如果做这样的页面呢?是不是需要写一个复杂的布局文件,再写一堆事件监听来完成呢?
2、PreferenceActivity的简单用法:
1)、步骤:
- 将setting.xml文件放到res的xml目录下;
- 将arrays.xml文件放到values目录下;
- 写一个页面SettingActivity。
2)、目录结构:
3)、核心代码:
//在SettingActivity中。不再需要setContentView(R.layout.activity_main)方法来加载布局了。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
addPreferencesFromResource(R.xml.setting);
//备注:This method was deprecated in API level 11. This function is not relevant for a modern fragment-based PreferenceActivity.这个方法在11版本以上就已经不推荐使用了。
}