wemall-mobile是基于WeMall的Android app商城,只须要在原商城目录下上传接口文件便可完成服务端的配置,客户端可定制修改。本文分享wemall app商城源码Android数据的SharedPreferences储存方式,供技术员参考学习。 SharedPreferences:除了SQLite数据库外,SharedPreferences也是一种轻型的数据储存方式,它的本质是基于XML文件存储key-value键值对数据,一般用来储存一些简单的配置信息。SharedPreferences接口自己并无提供写入数据的能力,而是经过SharedPreferencesde的内部接口,SharedPreferences调用edit()方法便可获取它所对应的Editor对象。实现SharedPreferences储存的步骤以下:
一、获取SharedPreferences对象
二、利用edit()方法获取Editor对象
三、经过Editor对象储存key-value键值对数据
四、经过commit()方法提交数据
例一:下面的代码储存三个数据,分别为String,Int,Boolean型,具体以下:android
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。app
要读或写其余程序的SharedPreferences,前提是要建立该应用程序指定相应的访问权限。好比MODE_WORLD_READABLE(只可被其余程序读),MODE_WORLD_WRITABLE(可被其余程序读或写).其步骤以下:
一、须要建立其余程序对应的Context,例如以下代码:koa
useContext=createPackageContext("com.ye_yun_lin.usecount", Context.CONTEXT_IGNORE_SECURITY);
上面的com.ye_yun_lin就是其余程序的包名ide
二、条用其余程序的Context的getSharedPreferences()便可获取相应的SharedPreferences对象
三、若是须要向其余应用的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数据库这样的储存方式。this
wemall官网地址:http://www.wemallshop.com
原文详情地址:http://Git.oschina.NET/zzunet...
wemall doraemonAndroid app商城详情地址:http://www.koahub.com/home/pr...
wemall 开源微商城 ,微信商城,商城源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统3d