使用SharedPreferences

SharedPreferences是Android平台上一个轻量级的存储类, 用来保存应用的一些常用配置.

SharedPreferences与Editor简介

主要用于保存配置文件, 保存数据的形式是key-value对.

SharedPreferences接口主要负责读取应用程序的Preferences数据,常用方法:

  • boolean contains(String key) 是否包含特定key的数据.
  • abstract Map<String, ?> getAll() 获取SharedPreferences数据里的全部的key-value对.
  • boolean getInt(String key, int defValue) 获取指定key对应的value. 如果key不存在, 则返回默认值defValue. 其他int可以是boolean, float, long...

SharedPreferences接口没有写入数据的能力, 而是通过调用SharedPreferences的内部接口, SharedPreferences调用edit()方法获得对应的Editor对象. Editor接口提供如下方法.

  • Editor clear() 清空SharedPreferences数据.
  • Editor putString(String key, @Nullale String value) 向SharedPreferences存入指定key对应的数据. 其中putString可以是putInt, putFloat...
  • Editor remove(String key) 删除指定key对应的数据项.
  • boolean commit() 当Editor编辑完成后, 调用此方法提交.

返回值是Editor, return Returns a reference to the same Editor object, so you can chain put calls together.

获取SharedPref实例的方法有两种:

  1. 调用Context对象的SharedPreferences getSharedPreferences(String name, int mode)
  2. 调用Activity对象的SharedPreferences getPreferences(int mode)

name 表示存储文件的名字, 第二种方法采用反射方式获取类名作为默认名.

mode 参数表示操作模式:

  • Context.MODE_PRIVATE 默认操作模式, 数据只能被本应用读写.
  • Context.MODE_WORLD_READABLE (不推荐)可以被其他应用读取.
  • Context.MODE_WORLD_WRITEABLE (不推荐)可以被其他应用写入.

SharedPreferences 的存储位置和格式

SharedPreferences数据总是保存在/data/data/<package name>/shared_pref/目录下, 总是以XML格式保存.

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="color" value="-1611696" />
</map>

示例代码

public class MainActivity extends AppCompatActivity {

    private static final int RED = 0xffff0000;
private static final int BLUE = 0xff00fff0; SharedPreferences mPreferences;
SharedPreferences.Editor mEditor; protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final LinearLayout bg = (LinearLayout) findViewById(R.id.background);
Button button = (Button) findViewById(R.id.red_button);
Button blueButton = (Button) findViewById(R.id.blue_button);
//获取只能被本程序读写的SharedPreferences对象
mPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);
mEditor = mPreferences.edit();
// 读取配置文件中'color'数据
int color = mPreferences.getInt("color", 0xffffffff);
// 应用配置文件
bg.setBackgroundColor(color); button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mEditor.putInt("color", RED);
mEditor.commit();
bg.setBackgroundColor(RED);
}
}); blueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mEditor.putInt("color", BLUE);
mEditor.apply();
bg.setBackgroundColor(BLUE);
}
}); mEditor.putString("time", (new Date()).toString());
mEditor.commit();
}
}

Android SharedPreferences基本用法的更多相关文章

  1. Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)

    原文:http://blog.csdn.net/liuyiming_/article/details/7704923 SharedPreferences介绍: SharedPreferences是An ...

  2. Android SharedPreferences一般的读写 的用法。

    Android SharedPreferences一般用于轻量级的数据存储,比如用户名和密码等. package com.lixu.testsharepreferences; import andro ...

  3. 【Android学习】android:layout_weight的用法实例

    对于android:layout_weight的用法,用下面的例子来说明: <LinearLayout xmlns:android="http://schemas.android.co ...

  4. Android之Adapter用法总结-(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

  5. Android之Adapter用法总结(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

  6. Android webservice的用法详细讲解

    Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...

  7. Android之Adapter用法总结

    http://blog.csdn.net/fznpcy/article/details/8658155 Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器 ...

  8. xamarin android viewpager的用法

    1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...

  9. Android开发PreferenceActivity 用法的代码

    将开发过程中常用的一些内容做个收藏,下面资料是关于Android开发PreferenceActivity 用法的内容,希望对大伙有一些用处.public class Setting extends P ...

随机推荐

  1. ReactiveSwift源码解析(八) SignalProducer的代码的基本实现

    在前面几篇博客中我们详细的聊了ReactiveSwift中的Bag.Event.Observer以及Signal的使用方式和代码实现.那么在接下来的这几篇博客中,我们就依附于之前博客的基础上来聊一聊S ...

  2. JQuery学习笔记——层级选择器

    JQuery学习笔记--层级选择器 上一篇学习了基础的五种选择,分别是id选择器,class选择器,element选择器,*选择器 和 并列选择器.根据手册大纲,这篇学习的是层级选择器. 选择器: 1 ...

  3. Storm笔记——技术点汇总

    目录 概况 手工搭建集群 引言 安装Python 配置文件 启动与测试 应用部署 参数配置 Storm命令 原理 Storm架构 Storm组件 Stream Grouping 守护进程容错性(Dae ...

  4. luoguP1886 滑动窗口 [单调队列]

    题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 例如: The array i ...

  5. 设计模式--工厂方法模式(Factory method pattern)及应用

    面向对象的好处: 通过封装,继承,多态把程序的耦合度降低. 用设计模式可以使程序更加灵活,容易修改,且易于复用. 1. 工厂方法模式 Define an interface for creating ...

  6. Spring源码情操陶冶-AbstractApplicationContext#postProcessBeanFactory

    阅读源码有利于陶冶情操,承接前文Spring源码情操陶冶-AbstractApplicationContext#prepareBeanFactory 约定:web.xml中配置的contextClas ...

  7. JVM GC(整理)

    1 GC类型 1 )YGC  一般情况下,当新对象生成,并且在Eden申请空间失败时,就好触发YGC ,堆Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区.然后整理S ...

  8. yii2 request文件简介

    1. 在yii2项目中经常用到下面这些方法: 方法 解释 Yii::$app->request->get($key,$defaultValue) GET方式获取key的值,若key空,则k ...

  9. 支付宝分库分表中间件--zdal简介

    中间件, 如果仅仅作为一名用户的话, 主要关注一下如何使用即可, 大多数情况下也就是配置. 下面简单的介绍一下支付宝的分库分表中间件--->zdal在web项目中的配置. 1, 在网上查阅相关资 ...

  10. MySQL系列(五)---总结MySQL中的锁

    MySQL中的锁 目录 MySQL系列(一):基础知识大总结 MySQL系列(二):MySQL事务 MySQL系列(三):索引 MySQL系列(四):引擎 概述 MyISAM支持表锁,InnoDB支持 ...