Android数据存储——SharedPreferences
一、数据存储选项:Data Storage ——Storage Options1、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中。
(三)、核心代码:button_main_savedata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prefs = getSharedPreferences("myaccount", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("age", 26);
editor.putString("username", "fangmenglin");
editor.putString("pwd", "123456");
editor.putString("username", "menglin");
editor.putString("age", "I'm 26 years old!");
editor.commit();
}
});
button_main_readdata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prefs = getSharedPreferences("myaccount", Context.MODE_PRIVATE);
String name = prefs.getString("username", "fml");
String pwd = prefs.getString("pwd", "000");
int age = prefs.getInt("age", 20);
System.out.println("====>" + name + ":" + pwd + ":" + age);
}
});
(四)、保存之后的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">menglin</string><int name="age">26</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版本以上就已经不推荐使用了。
}
对于SharedPreferences的简单使用就先介绍到这里。
知行办公,专业移动办公平台
https://zx.naton.cn/
原创团队:
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;【运营】运维艄公,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【java】首席工程师MR_W,feixue300@qq.com;【测试】土镜问道,847071279@qq.com;
【数据】fox009521,42151960@qq.com;【安全】保密,你懂的。
Android数据存储——SharedPreferences的使用
最新推荐文章于 2022-11-08 04:52:04 发布