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