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之 ...
随机推荐
- Ninja介绍
什么是Ninja 在Unix/Linux下通常使用Makefile来控制代码的编译,但是Makefile对于比较大的项目有时候会比较慢,看看上面那副漫画,代码在编译都变成了程序员放松的借口了.所以这个 ...
- wamp的安装--亲测有用
一.修改默认密码进入之后 use mysql;1.update user set password=PASSWORD('自己的数据库密码') where user='root';2.flush pri ...
- 大大维的游戏机计划3--2048v1
前几天由于忙着过年串门,游戏机的计划搁置了几天.这两天终于空出了一块时间,抽空写了2048. 由于笔者前面自制了一个类似2048的游戏,所以写起来也算是轻车熟路,花了两个晚上也就差不多了. 废话少说, ...
- ubuntu下配置Apache
ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...
- 路由器安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错误。向目标系统中安装busybox-initramfs软件包时出现一个错误。请检查/var/log/syslog或查看第四虚拟控制台以获得详细
公司的路由器要ubuntu服务器进行路由网络功能的管理,在安装的时候出现下面的错误提示: 安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错 ...
- 正则表达式之一:TSQL注释的查找
最近自己做了个小项目,涉及到了大量的正则表达式匹配和处理,在这里也和大家分享一下. 我相信接触过SQL Server数据库的很多朋友都知道,它是以"--"开头来进行注释的,但你觉得 ...
- 如何在sublime中安装使用eslint
1:首先你需要全局安装eslint npm install -g eslint 安装完成后在控制台 输入 eslint -v 有版本号说明就可以在npm中使用了,可以检查语法的错误处,但还不能在sub ...
- 安装Oracle服务端后配置注册表与PL/SQL
1.流程: 1.安装Oracle客户端(绿色版和安装版均可,建议安装在和Oracle服务端文件夹并行的路径下,例:E:\app\yginuo\product\11.2.0) 2.配置环境变量和注册表( ...
- Oracle_关联查询
1. 等值连接(Equijoin).非等值连接(Non-Equijoin).外连接(Outer join):-->左外连接-->右外连接.自连接(Self join) 交叉连接(Cross ...
- 【4N魔方阵】
/* 4N魔方阵 */ #include<stdio.h> #include<stdlib.h> #define N 8 int main(void){ int i, j; ] ...