wemall app商城源码Android数据的SharedPreferences储存方式
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享wemall app商城源码Android数据的SharedPreferences储存方式,供技术员参考学习。
SharedPreferences:除了SQLite数据库外,SharedPreferences也是一种轻型的数据储存方式,它的本质是基于XML文件存储key-value键值对数据,通常用来储存一些简单的配置信息。SharedPreferences接口本身并没有提供写入数据的能力,而是通过SharedPreferencesde的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。实现SharedPreferences储存的步骤如下:
1、获取SharedPreferences对象
2、利用edit()方法获取Editor对象
3、通过Editor对象储存key-value键值对数据
4、通过commit()方法提交数据
例一:下面的代码储存三个数据,分别为String,Int,Boolean型,具体如下:
package com.ye_yun_lin.sharedpreferencestest; import android.os.Bundle; import android.preference.Preference; import android.app.Activity; import android.content.SharedPreferences; import android.view.Menu; public class MainActivity extends Activity { private SharedPreferences sharedPreferences; private SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sharedPreferences=getSharedPreferences("My_XML", MODE_WORLD_READABLE); editor=sharedPreferences.edit(); editor.putString("String_key", "string"); editor.putInt("Int_key", 3); editor.putBoolean("Boolean_key", true); editor.commit(); } }
这段代码执行完后,在/data/data/com.ye_yun_lin.SharedPrefer/shared_prefs目录下生成了一个SP.My_XML文件,一个应用可以创建多个这样的文件。用DDMS界面的导出文件按钮,导出后打开如下:
例二:记录应用程序的使用次数:
这个实例可以记住应用程序的使用次数,当用户第一次启动该程序时,系统创建SharedPreferences来记录使用次数。用户以后启动该应用程序时,系统先读取SharedPreferences中的使用次数,然后将使用次数加1.代码如下:
package com.ye_yun_lin.usecount; import android.R.integer; import android.os.Bundle; import android.preference.Preference; import android.app.Activity; import android.content.SharedPreferences; import android.view.Menu; import android.widget.Toast; public class MainActivity extends Activity { private SharedPreferences sharedPreferences; private SharedPreferences.Editor editor; private int count; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sharedPreferences=getSharedPreferences("count",MODE_WORLD_WRITEABLE); editor=sharedPreferences.edit(); count=sharedPreferences.getInt("count", 0); Toast.makeText(this, "该应用程序被使用了"+count+"次!", Toast.LENGTH_LONG).show(); editor.putInt("count", ++count); editor.commit(); } }
例三:读写其他应用SharedPreferences。
要读或写其他程序的SharedPreferences,前提是要创建该应用程序指定相应的访问权限。比如MODE_WORLD_READABLE(只可被其他程序读),MODE_WORLD_WRITABLE(可被其他程序读或写).其步骤如下:
1、需要创建其他程序对应的Context,例如如下代码:
useContext=createPackageContext("com.ye_yun_lin.usecount", Context.CONTEXT_IGNORE_SECURITY);
上面的com.ye_yun_lin就是其他程序的包名
2、条用其他程序的Context的getSharedPreferences()即可获取相应的SharedPreferences对象
3、如果需要向其他应用的SharedPreferences数据写入数据,调用SharedPreferences的edit()方法获取相应的editor即可。
代码如下:
package comye_yun_line.useotherpreferences; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager.NameNotFoundException; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { private Context useContext=null; private SharedPreferences preferences; private int count; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { useContext=createPackageContext("com.ye_yun_lin.usecount", Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } preferences=useContext.getSharedPreferences("count", Context.MODE_WORLD_READABLE); count=preferences.getInt("count", 0); textView=(TextView)findViewById(R.id.textview); textView.setText(count+""); } }
SharedPreferences对象与SQLite数据库相比,免去了创建数据库、创建表、写SQL语句等操作,相对而言更加方便简洁。但是SharedPreferences也有其自身的缺陷,比如只能储存boolean,int,string,float,long五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据储存多么简洁,也只能是储存方式的一种补充,而无法完全代替SQLite数据库这样的储存方式。
wemall官网地址:http://www.wemallshop.com
原文详情地址:http://Git.oschina.NET/zzunet/wemall-doraemon/commit/e8f303df5663dc69fe47bb9623222149d40e3956
wemall doraemonAndroid app商城详情地址:http://www.koahub.com/home/product/55
wemall 开源微商城 ,微信商城,商城源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统
wemall app商城源码Android数据的SharedPreferences储存方式的更多相关文章
- wemall app商城源码Android之支付宝通知处理类
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处 ...
- wemall app商城源码Android之支付宝接口公用函数
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
- wemall app商城源码Android之ListView异步加载网络图片(优化缓存机制)
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之L ...
- wemall app商城源码Android 获取XML网络数据并绑定到ListView
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Android 获取XML网络数据并绑定到Li ...
- wemall app商城源码Android之Native(原生)支付模式一demo
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Native(原生)支付模式一demo,供技术 ...
- wemall app商城源码Android中ViewHolder详细解释
1.ViewHolder的解释: (1).只是一个静态类,不是Android的API方法. (2).它的作用就在于减少不必要的调用findViewById,然后把对底下的控件引用存在ViewHolde ...
- wemall app商城源码Android短信监听接收器
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- wemall app商城源码android开发MD5加密工具类
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...
- wemall app商城源码机器人检测
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
随机推荐
- ImageView及其子类(一)
ImageView继承自View组件,它的主要功能是用于显示图片——实际上这个书法不太严谨因为他能显示的不仅是图片,任何Drawable对象都可以使用ImageView来显示.除此之外,ImageVi ...
- 【转载】doxygen+graphviz生成代码文档
一.工具 doxygen:http://www.stack.nl/~dimitri/doxygen/download.html graphviz:http://www.graphviz.org/ 二. ...
- ARC使用小结
内存管理基本原则 内存管理的依循下面的基本原则 自己生成的对象,那么既是其持有者 不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有) 如果不想持有对象的时候,必须释放其所有权 不能释放已 ...
- xmlns:xsi ——是指xml文件遵守xml规范,xsi全名:xml schema instance
http://blog.sina.com.cn/s/blog_4b6f8d150100nx3e.html http://blog.csdn.net/iaiti/article/details/4226 ...
- php之 人员的权限管理(RBAC)
1.想好权限管理的作用? 2.有什么权限内容? 3.既然有权限管理那么就会有管理员? 4.登录后每个人员的界面会是不一样的? 一.想好这个权限是什么? 就做一个就像是vip的功能,普通用户和vip用户 ...
- POJ1144(割点)
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12551 Accepted: 5771 Descript ...
- Socket层上的协议
Socket层上的协议指的数据传输的格式 HTTP协议 传输格式:假设:这是假设,实际http的格式不是这样的. http1.1,content-type:multipart/form-data,co ...
- substring和substr、$.extend()、$.fn.extend()、(function($){….})(jQuery)的简易讲解
1. JS中substring与substr的区别 Substring: 该方法可以有一个参数也可以有两个参数. l 一个参数: 示例: var str="Olive": ...
- 《Effective Objective-C 2.0》 读后总结
感觉自己最近提升很慢了.然后去找了一些面试题看看.发现自己自大了.在实际开发中,让我解决bug.编写功能,我有自信可以完成.但是对项目更深层的思考,我却没有.为了能进到自己的目标BAT.也为了让自己更 ...
- block之---应用场景:做参数和返回值
1.做参数 什么时候使用Block充当参数? 封装一个功能,这个功能做什么事情由外界决定,但是什么时候调用由内部决定,这时候就需要把Block充当参数去使用. 模拟需求: 封装一个计算器,怎么计算由外 ...