SharedPreferences是Android平台上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態,一般在Activity中重載窗口狀態onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常規的Long整形、Int整形、String字符串型的保存。這種方式應該是用起來最簡單的Android讀寫外部數據的方法了。以一種簡單、透明的方式來保存一些用戶個性化設置的字體、顏色、位置等參數信息。
在Android系統中,這些信息以XML文件的形式保存在
/data/data/PACKAGE_NAME /shared_prefs 目錄下。
SharedPreferences pre = getSharedPreferences("soft",
Context.MODE_WORLD_READABLE);
在這裡我們可以調用 activity 為我們提供的方法,這個方法有兩個參數:
1)文件名 。 在這裡要特別注意 。 因為在 Android 中已經確定了 SharedPreferences 是以 xm l形式保存,所以,在填寫文件名參數時,不要給定 ” .xml ” 後綴, android 會自動添加 。它是采用鍵值對的形式保存參數。 當你需要獲得某個參數值時 , 按照參數的鍵索引即可。
2)第二個可以理解為創建模式和之前的文件存儲的模式是一樣的。
Context. MODE_PRIVATE
Context. MODE_APPEND MODE_APPEND
Context. MODE_WORLD_READABLE
Context. MODE_WORLD_WRITEABLE
下面介紹一個實例來演示向SharedPreferences的讀寫
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/nameTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="30dp"
android:text="姓 名"
android:textSize="25dp"
/>
<EditText
android:id="@+id/nameET"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/ageTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="30dp"
android:text="年 齡"
android:textSize="25dp"
/>
<EditText
android:id="@+id/ageET"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/btn1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginLeft="100dp"
android:text="保存"
/>
<Button
android:id="@+id/btn2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="讀取"
/>
</LinearLayout>
</LinearLayout>