android 项目中规范使用SharedPreferences
一、SharedPreferences是什么来的?
SharedPreferences是Android四种数据存储技术中的一种(SharedPreferences、SQLite、Content Provider和File),SharedPreferences处理的就是一个key-value(键值对),常用来存储一些轻量级的数据。
(官网是学习android最好的地方)
官网链接:http://developer.android.com/reference/android/content/SharedPreferences.html
二、简单使用
1、创建一个ShareContents类,用于保存key-value的key
public class ShareContents {
public static String ShareName="shareName";
public static String myName = "myName";
public static String isGood = "isGood";
}
2、创建一个ShareManager类,用于统一管理SharedPreferences的get和set方法,相当于设置或者key-value的value。
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
public class ShareManager {
private SharedPreferences share;
private Editor editor;
private String TAG = "ShareManager";
private ShareManager() {
super();
} public void clear() {
editor.clear().commit();
}; public ShareManager(Context context) {
super();
share = context.getSharedPreferences(ShareContents.ShareName, Context.MODE_PRIVATE);
editor = share.edit();
} /**
* 获取myName
*
* @return
*/
public String getMyName() {
String result = share.getString(ShareContents.myName, "");
return result;
} /**
* 设置myName
*
* @param myName
*/
public void setMyName(String myName) {
editor.putString(ShareContents.myName, myName).commit();
} /**
* 获取isGood
* @return
*/
public boolean isGood(){
boolean result = share.getBoolean(ShareContents.isGood, false);;
return result;
} /**
* 设置isGood
* @param isGood
*/
public void setIsGood(boolean isGood){
editor.putBoolean(ShareContents.isGood, isGood).commit();
}
}
3、SharedPreferences的演示demo
public class SharePreferencesActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Button button = new Button(this);
setContentView(button);
button.setText("点击一下屏幕哦,就可以设置SharedPreferences并获取值显示在屏幕上");
// 生成对象shareManager
final ShareManager shareManager = new ShareManager(this);
// 设置名称
shareManager.setMyName("li xiao long");
// 设置isGood为true
shareManager.setIsGood(true);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
button.setText("myName:"+shareManager.getMyName()+" ; "+"isGood:"+shareManager.isGood());
};
});
}
}
你可以点击这里找到本节的demo
本文链接:http://www.cnblogs.com/liqw/p/4148411.html
android 项目中规范使用SharedPreferences的更多相关文章
- android项目中配置NDK自动编译生成so文件
1 下载ndk开发包 2 在android 项目中配置编译器(以HelloJni项目为例) 2.1 创建builer (a)Project->Properties->Builder ...
- Android 项目中文件夹的说明与作用(转)
(转自:http://blog.csdn.net/goodshot/article/details/11529731) Android 项目中文件夹的作用 1. src:存放所有的*.java源程序. ...
- android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件
简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...
- 对Android项目中的文件夹进行解释
对Android项目中的文件夹进行解释: · src:里面存放的是Activity程序,或者是以后的其他组件,在此文件夹之中建立类的时候一定要注意,包名称不能是一级. · gen:此文件夹中的内容是自 ...
- android项目中如何加载已有so库 <转>
1,在项目根目录下建立文件夹libs/armeabi文件夹 2,将so库放入 libs/armeabi文件夹 注意事项: 1,如果采用静态注册的方式请注意C文件中严格按照命名规则 Java_packa ...
- 在Android项目中启用Java 8的部分特性--Lambda & Method References
Android N发布时同时发布了一个新的编译工具Jack(AS2.1+支持),基于Jack我们可以使用Java 8 的部分特性,在低版本机器上能使用的更少,同时Jack也有诸多不完善,工具链的改变难 ...
- Android项目中如何用好构建神器Gradle?(转)
最近在忙团队并行开发的事情,主要是将各个团队的代码分库,一方面可以降低耦合,为后面模块插件化做铺垫,另一方面采用二进制编译,可以加快编译速度.分库遇到了一些问题,很多都要通过Gradle脚本解决,所以 ...
- android项目中刷新activity界面
android项目中在sqlite数据库插入/更新/删除数据后: 1. 刷新当前activity界面数据(手动刷新): 在activity类下新增一个refresh()方法: /** * 刷新, 这样 ...
- 举例android项目中的string.xml出现这个The character reference must end with the ';' delimiter.错误提示的原因及解决办法
今天在一个android项目中的string.xml中写这样一个字符串时出现了下面这个错误提示: The reference to entity "说明" must end wit ...
随机推荐
- SqlDataReader读取分页数据,pageCount你是肿么了?
自己在折腾代码的时候发现,SqlDataReader读取分页数据,存储过程中的输出参数总页数pageCount获取不准确. 我已经问过百度,技术群等..... 都说SqlDataReader用过后关闭 ...
- javascript工厂模式
工厂模式 设计工厂模式的目的是为了创建对象.它通常在类或者类的静态方法实现,具有下列目标: 1.在创建相似对象是执行重复操作 2.在编译时不知道具体类型(类)的情况下,为工厂客户提供一种创建对象的接口 ...
- POJ 1837 Balance
Balance Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 9240 Accepted: 5670 Description G ...
- pdo调用
php单次调用,例题 <body> <?php //造DSN:驱动名:dbname=数据库名;host=服务器地址 $dsn = "mysql:dbname=mydb;ho ...
- ios流媒体
http://my.oschina.net/CgShare/blog/302303 渐进式下载(伪流媒体) 介于下载本地播放与实时流媒体之间的一种播放形式,下载本地播放必须全部将文件下载完成后才能播放 ...
- scrollview里面多张图片,每张都能放大缩小
http://blog.sina.com.cn/s/blog_5d68044001018s1n.html scrollview里面多张图片,每张都能放大缩小 - (void)viewDidLoad{ ...
- VS2008+Qt+助手 智能提示不显示、Qt关键字不高亮的解决办法【已解决】
笔者使用的开发环境是VS2008+Qt4.8.5+VAssistX,有时候会出现代码关键字不能高亮显示,并且助手的智能提示不显示.问题如下 解决的办法是在助手的选项中设置其搜索路径,助手的设置通过VS ...
- iOS 中的第三方库管理工具
xcode没有android studio中的gradle进行第三方库管理,但是有第三方的库管理工具CocoaPods,https://github.com/CocoaPods/CocoaPods/w ...
- MST:Conscription(POJ 3723)
男女搭配,干活不累 题目大意:需要招募女兵和男兵,每一个人都的需要花费1W元的招募费用,但是如果有一些人之间有亲密的关系,那么就会减少一定的价钱,如果给出1~9999的人之间的亲密关系,现在要你求 ...
- codeforces 485B Valuable Resources 解题报告
题目链接:http://codeforces.com/problemset/problem/485/B 题目意思:需要建造一个正方形的city,这座city的边需要满足平行于 x 轴和 y 轴,而且这 ...