日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > 綜合技術(shù) > SharedPreferences

SharedPreferences

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-03-13 08:12:13 閱讀次數(shù):3470次

SharedPreferences

  SharedPreferences:利用程序有時(shí)需要保存少許的數(shù)據(jù),如各種配置信息(聲音的開(kāi)關(guān),震動(dòng)效果的開(kāi)關(guān)等)的存儲(chǔ),這個(gè)時(shí)候啟用數(shù)據(jù)庫(kù)有點(diǎn)夸大,安卓提供了SharedPreferences進(jìn)行保存。


  SharedPreferences保存的數(shù)據(jù)主要是類似于key-value鍵值對(duì)。其提供的主要接口是負(fù)責(zé)讀取利用程序的Preferences數(shù)據(jù),經(jīng)常使用方法有以下:
  1. boolean contains(String key):判斷SharedPreferences是不是包括特定的key數(shù)據(jù)。
  2. abstract Map<String,?> getAll():獲得SharedPreferences數(shù)據(jù)里全部的ket-value對(duì)。
  3. boolean getXxx(String key, xxx defValue):獲得SharedPreferences數(shù)據(jù)里指定的key對(duì)應(yīng)的value.如果key不存在,則返回默許值defValue.其中的xxx可以是boolean,float,int,long,String等各種基本類型的值。

  SharedPreferences依托內(nèi)部的接口,才能夠?qū)懭霐?shù)據(jù),調(diào)用edit()方法便可獲得所對(duì)應(yīng)的Editor對(duì)象。Editor提供了下面幾種方法來(lái)向SharedPreferences寫入數(shù)據(jù):

  1. SharedPreferences.Editor clear(): 清空SharedPreferences里所有數(shù)據(jù)。
  2. ShraedPreferences.Editor putXxx(String key, Xxx value): 向SharedPreferences存入指定了key的數(shù)據(jù)value,value的類型可以是boolean,float,int,long,String等。
  3. SharedPreferences.Editor remove(String key): 刪除 Sharedpreferences里指定key對(duì)應(yīng)的數(shù)據(jù)。
  4. boolean commit(): 當(dāng)Editor編輯完成后,調(diào)用該方法提交修改。


  ShraedPreferences本身是1個(gè)接口,程序沒(méi)法直接創(chuàng)建SharedPreferences實(shí)例,只能通過(guò)Context提供的getShraedPreferences(String name, int mode)方法來(lái)獲得SharedPreferences實(shí)例。關(guān)于第2個(gè)參數(shù)mode有1下3種值:
  1. Context.MODE_PRIVATE: 指定該SharedPreferences數(shù)據(jù)只能被本利用讀寫。
  2. Context.MODE_WORLD_READABLE: 指定該SharedPreferences數(shù)據(jù)能被其他利用程序讀,但是不能寫入。
  3. Context.MODE_WORLD_WRITABLE: ShraedPreferences數(shù)據(jù)能被其他利用讀寫。

下面用1個(gè)小例子來(lái)演示下如何進(jìn)行讀寫SharedPreferences數(shù)據(jù):
public class MainActivity extends Activity { private Button write; private Button read; private SharedPreferences preferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); write = (Button) findViewById(R.id.write); read = (Button) findViewById(R.id.read); preferences = getSharedPreferences("count",MODE_PRIVATE); //讀取SharedsPreferences里的count數(shù)據(jù) int count = preferences.getInt("count",0); Toast.makeText(this,"程序之前被使用了" + count + "次。 ", Toast.LENGTH_LONG).show(); //獲得到SharedPreferences的editor,用來(lái)進(jìn)行寫入數(shù)據(jù) SharedPreferences.Editor editor = preferences.edit(); //存入數(shù)據(jù) editor.putInt("count",++count); //提交修改 editor.commit(); } }


  上面這個(gè)例子只是在本利用里面使用ShraedPreferences,如果要讀寫其他利用的ShraedPreferences,首先要被訪問(wèn)的利用在創(chuàng)建的時(shí)候指定了相應(yīng)的訪問(wèn)權(quán)限,也就是上面提到的3種權(quán)限。


  為了讀取到其他利用程序的SharedPreferences數(shù)據(jù),可以依照下面3個(gè)步驟來(lái)進(jìn)行:


  先創(chuàng)建其他利用對(duì)應(yīng)的Context,例如:
Context context = createPackageContext("com.dada.example",Context.CONTEXT_IGNORE_SECURITY);

  上面的com.dada.example就是利用程序的包名,通過(guò)這個(gè)我們可以找到相應(yīng)的利用程序。


  調(diào)用獲得到的COntext的getShraedPreferences(String name, int mode)便可獲得到相應(yīng)的ShraedPreferences對(duì)象。


  再根據(jù)SharedPreferences提供的edit()方法來(lái)獲得到響應(yīng)的Editor,便可向ShraedPreferences中寫入數(shù)據(jù)了。
現(xiàn)在在剛才已有的基礎(chǔ)上,再創(chuàng)建1個(gè)利用程序,讀取上1個(gè)利用的ShraedPreferneces中的數(shù)據(jù)。
public class MainActivity extends ActionBarActivity { private Button write; private Button read; private int count; private SharedPreferences preferences; private SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); write = (Button) findViewById(R.id.write); read = (Button) findViewById(R.id.read); Context myApplication = null; try{ myApplication = createPackageContext("com.example.pc.myapplication",Context.CONTEXT_IGNORE_SECURITY); preferences = myApplication.getSharedPreferences("count",Context.MODE_WORLD_WRITEABLE); editor = preferences.edit(); } catch (Exception e){ e.printStackTrace(); } write.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { editor.putInt("count",++count); } }); read.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { count = preferences.getInt("count",0); Toast.makeText(getApplicationContext(),"count的值為" + count,Toast.LENGTH_LONG).show(); } }); } }


生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲男人天堂 | 久久一区| 99视频在线免费观看 | 亚洲色欲色欲www | 久久久久久久成人 | 在线欧美 | 国产精品嫩草影视 | 美日韩一区 | 高清国产一区二区 | 在线不卡一区 | 深夜视频一区二区 | 91色在线视频 | 亚洲福利视频一区二区 | 欧美黑人巨大videos精品 | 一级特黄a免费观看视频 | 国产欧美一区二区视频 | 国产美女一区二区三区 | 欧美日韩免费在线观看 | 亚洲综合免费 | 亚洲一区二区三区精品在线 | 国产一区二区三区在线免费观看 | 91在线精品一区二区三区 | 久久久91精品国产一区老牛影视 | 国产美女一区二区三区 | 一级不卡| 345成人看片 | 国产专区一区二区 | 国产一区二区高清视频 | 亚洲视频a| 日韩精品免费在线观看 | 国产精品福利片 | 精品国产乱码久久久久久丨区2区 | 亚洲成人高清av | 久久五月婷 | 成人精品久久 | 国产不卡在线播放 | 亚洲精品av在线 | 久久久久久久久久国产精品 | 欧美电影一区二区三区 | 亚洲欧美日韩成人 | 精品美女一区二区 |