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系统

时间: 2024-10-05 05:07:44

wemall app商城源码Android数据的SharedPreferences储存方式的相关文章

wemall app商城源码Android之支付宝通知处理类

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处理支付宝各接口通知返回,供技术员参考学习. 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码,该代码仅供学习和研究支付宝接口使用,只是提供一个参考,调试通知返回时,可查看或改写log日志的写入TXT里的数据,来检查通知返回是否正常. w

wemall app商城源码Android中ViewHolder详细解释

1.ViewHolder的解释: (1).只是一个静态类,不是Android的API方法. (2).它的作用就在于减少不必要的调用findViewById,然后把对底下的控件引用存在ViewHolder里面,再在View.setTag(holder)把它放在view里,下次就可以直接取了. 2.convertView中的TAG: (1).Tag不像ID是用标示view的.Tag从本质上来讲是就是相关联的view的额外的信息.它们经常用来存储一些view的数据,这样做非常方便而不用存入另外的单独结

wemall app商城源码Android之通用通知接口demo

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Native(原生)支付模式一demo,供技术员参考学习. wemall官网地址:http://www.wemallshop.com 支付完成后,微信会把相关支付和用户信息发送到商户设定的通知URL,商户接收回调信息后,根据需要设定相应的处理流程. 这里举例使用log文件形式记录回调信息. notify_url.php <?php includ

wemall app商城源码Android短信监听接收器

wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中短信监听接收器,用于自动获取短信验证码,然后自动填写到验证码区域代码,供技术员参考学习. package cn.smssdk.gui; import android.content.BroadcastReceiver; import android.content.Context; import a

wemall app商城源码android开发MD5加密工具类

wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供技术员参考学习. package com.gzcivil.utils; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgori

wemall app商城源码机器人检测

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 wemall app商城源码机器人检测,供技术员参考学习. <?php defined('THINK_PATH') or exit(); /** * 机器人检测 * @category Extend * @package Extend * @subpackage Behavior * @author

wemall app商城源码中基于PHP的ThinkPHP惯例配置文件代码

wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中关于ThinkPHP惯例配置文件代码,供技术员参考学习. <?php /** * ThinkPHP惯例配置文件 * 该文件请不要修改,如果要覆盖惯例配置的值,可在项目配置文件中设定和惯例不符的配置项 * 配置名称大小写任意,系统会统一转换成小写 * 所有配置参数都可以在生效前动态改变 * @cate

wemall app商城源码中实现带图片和checkbox的listview

wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享其中实现带图片和checkbox的listview,供技术员参考学习. import com.inuoer.util.AsyncImageLoader.ImageCallback; import com.inuoer.wemall.R; public class MainAdapter extends BaseAdapter { private

wemall app商城源码中基于JAVA的T绑定和处理fragments和viewpager之间的逻辑关系代码

wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中关于为ViewPager添加布局(Fragment),绑定和处理fragments和viewpager之间的逻辑关系,供技术员参考学习. package com.inuoer.util; import java.util.List; import android.support.v4.app.Fra