Android SharedPreferences基本用法
使用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实例的方法有两种:
- 调用Context对象的
SharedPreferences getSharedPreferences(String name, int mode)
- 调用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基本用法的更多相关文章
- Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
原文:http://blog.csdn.net/liuyiming_/article/details/7704923 SharedPreferences介绍: SharedPreferences是An ...
- Android SharedPreferences一般的读写 的用法。
Android SharedPreferences一般用于轻量级的数据存储,比如用户名和密码等. package com.lixu.testsharepreferences; import andro ...
- 【Android学习】android:layout_weight的用法实例
对于android:layout_weight的用法,用下面的例子来说明: <LinearLayout xmlns:android="http://schemas.android.co ...
- Android之Adapter用法总结-(转)
Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...
- Android之Adapter用法总结(转)
Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...
- Android webservice的用法详细讲解
Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...
- Android之Adapter用法总结
http://blog.csdn.net/fznpcy/article/details/8658155 Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器 ...
- xamarin android viewpager的用法
1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...
- Android开发PreferenceActivity 用法的代码
将开发过程中常用的一些内容做个收藏,下面资料是关于Android开发PreferenceActivity 用法的内容,希望对大伙有一些用处.public class Setting extends P ...
随机推荐
- 二叉树 - 建立与遍历使用Java
二叉树的遍历(traversing binary tree)是指从根节点出发,按照某种次序依次访问二叉树中所有节点,使得每个节点仅被访问一次 前序遍历:若二叉树为空,则空操作返回null.否则先访问根 ...
- 配置ssh免密码登录——集群学习日记
度过了难熬的考试月时期之后,最近和小伙伴一起参加的的比赛进入了紧张的准备时期.在进行工作的时候,发现有很多基础的知识点,自己不是很清楚以及了解,所以在想,要不就边学习的时候边写下学习日记,以供自己后来 ...
- SpringMVC源码情操陶冶-FreeMarker之web配置
前言:本文不讲解FreeMarkerView视图的相关配置,其配置基本由FreeMarkerViewResolver实现,具体可参考>>>SpringMVC源码情操陶冶-ViewRe ...
- UWP:使用Behavior实现Button点击动态效果
废话不多说,先上效果 没有做成安卓那种圆形的原因是...人家真的不会嘛... 好了下面是正文: 首先在工程中引入Behavior的库,我们使用Nuget. 在项目->引用上点击右键,点击管理Nu ...
- 简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】
今天又是新的一周,我养足了精神去对待新一周的工作,但是今天到公司发现还是有一点空闲时间的,所以就想与之前接触过的Nginx再交往得更深一点儿. 什么是Nginx: Nginx是一款高性能的http服务 ...
- Effective Java通俗理解(持续更新)
这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...
- oracle 修改表空间文件路径方法
比如说修改 user01.dbf 文件 的路径 1.先登录sqlplus: C:\Documents and Settings\chezh>sqlplus system/passwo ...
- jquery.cityselect.js基于jQuery+JSON的省市或自定义联动效果
一.插件介绍 最早做省市联动的时候都特别麻烦,后来在helloweba的一篇文章中看到这个插件,很不错的,后来就一直用了. 省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系统.电商网站最 ...
- 【水题】HDU--1280 前m大的数
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就 ...
- appach-maven-3.5.0配置与下载
今天需要搭建javaweb开发的环境,需要配置maven.弄了半天终于配置好了.蛋疼的一批.楼主用的是win10的系统.不知道Linux下的也是不是这么坑! 首先,需要把maven的包下载下来.进入h ...