大家好,我們這一節講的是Android Preferences 的學習,Preferences 在Android當中被用來記錄應用,以及使用者喜好等等,它可以用來儲存
簡單的資料類型,如Int,Double,Boolean等。Preferences中儲存的資料可以理解為Map型。我們通過PreferenceManager
以及getDefaultSharedPreferences(Context)
來擷取它,比如當我們想獲得整數我們可以用
getInt(String key, int defVal)
.擷取裡面的某個索引值,當我們想修改時候我們用
putInt(String key, int newVal),
最後用
edit(),
方法提交!千萬不要忘記了哦~
為了讓大家跟好的理解我做了一個簡單的Demo,程式主要有個TextView控制項,上面寫著使用者使用改應用的次數。效果如所示:
下面是實現Demo的大體步驟:
一、建立一個Android工程命名為:PreferencesDemo。
二、在修改main.xml布局檔案,這裡只是在TextView控制項裡加了一個id.代碼如下:
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> ><br /><TextView<br /> android:id="@+id/text"<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> android:text="@string/hello"<br /> /><br /></LinearLayout><br />
三、修改PreferenceDemo.java的代碼,全部代碼如下:
package com.android.tutor;<br />import android.app.Activity;<br />import android.content.SharedPreferences;<br />import android.os.Bundle;<br />import android.preference.PreferenceManager;<br />import android.widget.TextView;<br />public class PreferencesDemo extends Activity {<br /> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);</p><p> SharedPreferences mPerferences = PreferenceManager<br /> .getDefaultSharedPreferences(this);</p><p> int counter = mPerferences.getInt("counter", 0);</p><p> TextView mTextView = (TextView)findViewById(R.id.text);</p><p> mTextView.setText("This app has been started " + counter + " times.");</p><p> SharedPreferences.Editor mEditor = mPerferences.edit();</p><p> mEditor.putInt("counter", ++counter);<br /> mEditor.commit();</p><p> }<br />}
四、運行代碼,實現上述效果.
五、查看Preferences檔案,首先開啟命令終端:adb shell一下,然後cd data/data進入該目錄,ls一下我們會發現一大堆包檔案,入所示:
cd com.android.tutor
(這裡是我程式的包名)
/shared_prefs,ls一下會發現.xml檔案如:
開啟.xml檔案,格式如下(為什麼這樣大家自己去理解):
<?xml version='1.0' encoding='utf-8' standalone='yes' ?><br /><map><br /><int name="counter" value="3" /><br /></map><br />
OK,今天就到此為止,以上全是個人愚見,如果有什麼地方不對的,請指正,謝謝大家!