一、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的更多相关文章

  1. android项目中配置NDK自动编译生成so文件

    1 下载ndk开发包   2 在android 项目中配置编译器(以HelloJni项目为例)  2.1 创建builer  (a)Project->Properties->Builder ...

  2. Android 项目中文件夹的说明与作用(转)

    (转自:http://blog.csdn.net/goodshot/article/details/11529731) Android 项目中文件夹的作用 1. src:存放所有的*.java源程序. ...

  3. android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

    简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...

  4. 对Android项目中的文件夹进行解释

    对Android项目中的文件夹进行解释: · src:里面存放的是Activity程序,或者是以后的其他组件,在此文件夹之中建立类的时候一定要注意,包名称不能是一级. · gen:此文件夹中的内容是自 ...

  5. android项目中如何加载已有so库 <转>

    1,在项目根目录下建立文件夹libs/armeabi文件夹 2,将so库放入 libs/armeabi文件夹 注意事项: 1,如果采用静态注册的方式请注意C文件中严格按照命名规则 Java_packa ...

  6. 在Android项目中启用Java 8的部分特性--Lambda & Method References

    Android N发布时同时发布了一个新的编译工具Jack(AS2.1+支持),基于Jack我们可以使用Java 8 的部分特性,在低版本机器上能使用的更少,同时Jack也有诸多不完善,工具链的改变难 ...

  7. Android项目中如何用好构建神器Gradle?(转)

    最近在忙团队并行开发的事情,主要是将各个团队的代码分库,一方面可以降低耦合,为后面模块插件化做铺垫,另一方面采用二进制编译,可以加快编译速度.分库遇到了一些问题,很多都要通过Gradle脚本解决,所以 ...

  8. android项目中刷新activity界面

    android项目中在sqlite数据库插入/更新/删除数据后: 1. 刷新当前activity界面数据(手动刷新): 在activity类下新增一个refresh()方法: /** * 刷新, 这样 ...

  9. 举例android项目中的string.xml出现这个The character reference must end with the ';' delimiter.错误提示的原因及解决办法

    今天在一个android项目中的string.xml中写这样一个字符串时出现了下面这个错误提示: The reference to entity "说明" must end wit ...

随机推荐

  1. IHttpModule在webconfig中的注册

    在asp.net中,提供了两种方式用来解决获取由asp.net服务器创建和维护的HttpApplication对象,方便注册HttpApplication对象的事件处理.这两种方式为:IHtpModu ...

  2. 回家前的挣扎——SQLite增删改查

    引言 最后一天,公司就两个人,也不知道弄点什么,就在网上找了Sqlite的文档,看了看,这里也是现学现卖,给自己找点事做,感觉时间过得还是比较快的,不然焦急等待,滋味不好受啊. SQLite简介 SQ ...

  3. “System.Transactions.Diagnostics.DiagnosticTrace”的类型初始值设定项引发异常[WCF]

    未处理System.TypeInitializationException  HResult=-2146233036  Message=“System.ServiceModel.Diagnostics ...

  4. C++ 模板双向不循环链表!!

    CTDChain<T,sort,equal,pointer> * nodeTemp = NULL; -------------------------------------------- ...

  5. git基础知识总结

    1,clone git clone https://github.com/KoMiles/helloword helloword 2,pull git pull 3,commit git commit ...

  6. 利用ADSL拨号上网方式如何搭建服务器

    序:搭建服务器需要两个条件硬件服务器和固定公网IP,随便一台个人电脑都可以作为硬件服务器,就剩下一个问题,如何获得一个固定公网IP. 第一章 扫盲:ADSL拨号上网方式,本地IP与公网IP的区别 一. ...

  7. 基础知识《四》---Java多线程学习总结

    本文转载自51cto 一.线程的基本概念简单的说:线程就是一个程序里不同的执行路径,在同一个时间点上cpu只会有一个线程在执行,Java里的多线程是通过java.lang.Thread类来实现的,每个 ...

  8. Minimum Size Subarray Sum

    Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...

  9. outlook.office365.com传参

    string m_html = string.Empty; m_html += "<script>"; m_html += string.Format("wi ...

  10. Python发布Django项目的pyc版脚本

    import os import sys from py_compile import compile #print "argvs:",sys.argv if len(sys.ar ...