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 ...
随机推荐
- (转)Linux服务器安装配置tomcat
这里首先说明下,Linux下的Tomcat没有32位和64位的区分. tomcat是分windows版本与linux版本的,windows版本一般以exe或者zip格式:linux版本一般以tar.g ...
- 阿里聚安全移动安全专家分享:APP渠道推广作弊攻防那些事儿
移动互联网高速发展,要保持APP持续并且高速增长所需的成本也越来越高.美团网CEO在今年的一次公开会议上讲到:"2017年对移动互联网公司来说是非常恐的.".主要表现在三个方面,手 ...
- Android学习笔记-EditText(输入框)(二)
6.控制EditText四周的间隔距离与内部文字与边框间的距离 我们使用margin相关属性增加组件相对其他控件的距离,比如android:marginTop = "5dp" 使用 ...
- year:2017 month:08 day:04
2017-08-04 JAVAse 1.final修饰符 final可以修饰类,成员方法,成员变量(static 修饰符不可以修饰类) final的初始化在对象被实例化前即可final 修饰的方法不可 ...
- 在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)
上一节我们创建了 overlay 网络 ov_net1,今天将运行一个 busybox 容器并连接到 ov_net1: 查看容器的网络配置: bbox1 有两个网络接口 eth0 和 eth1.eth ...
- mybatis 详解(四)------properties以及别名定义
上一篇博客我们介绍了mybatis的增删改查入门实例,我们发现在 mybatis-configuration.xml 的配置文件中,对数据库的配置都是硬编码在这个xml文件中,如下图,那么我们如何改进 ...
- hdu--1077--Catching Fish
思路: 1.枚举两点确定圆心,大于2不用考虑 2.逐个判断判断距圆心的距离小于1.00001符合题意 这个题,主要在求圆心上废了不少功夫,但是仍存在问题 #include<iostrea ...
- iframe中的模态框遮罩父窗口原理
关键点: css的position定位为fixed或absolute css的z-index, 最顶层的值最大如遮罩层为0那么弹出框最好是大于等于1的整数,总之记住弹出层要比遮罩的z-index值大就 ...
- Bat脚本自动卸载软件-静默执行
通过Bat脚本卸载软件,原理是得到某软件的ProductCode,然后通过MsiExec.exe命令卸载软件,下面是卸载一个产品的基本代码示例: set ML4.0HF4Name=Product4.0 ...
- 转:SpringMVC浅谈
因为项目文案需要,于是乎翻阅spring相关资料.顿觉该篇不错详尽易懂,特转载之. 转载出处: http://blog.csdn.net/gane_cheng/article/details/5278 ...