Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android sharedpreferences 詳解 代碼 實例

android sharedpreferences 詳解 代碼 實例

編輯:關於Android編程

SharedPreferences是Android平台上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態,一般在Activity中重載窗口狀態onSaveInstanceState保存一般使用SharedPreferences完成,

它提供了BLOB布爾型,FLOAT浮點型,Long長整形、Int整形、String字符串型的保存,它是什麼樣的處理方式呢?

 SharedPreferences類似過去Windows系統上的ini配置文件,但是它分為多種權限,可以全局共享訪問,android提示最終是以xml方式來保存,整體效率來看不是特別的高,對於常規的輕量級而言比SQLite要好不少,如果真的存儲量不大可以考慮自己定義文件格式。xml處理時Dalvik會通過自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對於內存資源占用比較好。

 

2個activity 之間的數據傳遞除了可以他通過intent來傳遞,還可以使用SharedPreferences來共享數據的方式

SharedPreferences 用法很簡單.

在A中

設置

[java]
Editor sharedata = getSharedPreferences("data", 0).edit(); 
   sharedata.putString("item","hello getSharedPreferences"); 
   sharedata.commit(); 

B中獲取
[java]
SharedPreferences sharedata = getSharedPreferences("data", 0); 
String data = sharedata.getString("item", null); 
Log.v("cola","data="+data); 

 

數據存取之Preferences

這種方式應該是用起來最簡單的Android讀寫外部數據的方法了。他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一樣,以一種簡單、透明的方式來保存一些用戶個性化設置的字體、顏色、位置等參數信息。一般的應用程序都會提供“設置”或者“首選項”的這樣的界面,那麼這些設置最後就可以通過Preferences來保存,而程序員不需要知道它到底以什麼形式保存的,保存在了什麼地方。當然,如果你願意保存其他的東西,也沒有什麼限制。只是在性能上不知道會有什麼問題。

在Android系統中,這些信息以XML文件的形式保存在 /data/data/PACKAGE_NAME/shared_prefs 目錄下。


數據讀取:

[java] 
String PREFS_NAME = "Note.sample.roiding.com";  
 
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  
 
boolean silent = settings.getBoolean("silentMode", false);  
 
String hello = settings.getString("hello", "Hi");   

 

這段代碼中:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
通過名稱,得到一個SharedPreferences,顧名思義,這個Preferences是共享的,共享的范圍據現在同一個Package中,這裡面說所的Package和Java裡面的那個Package不同,貌似這裡面的Package是指在AndroidManifest.xml文件中:
後面的那個int是用來聲明讀寫模式,先不管那麼多了,暫時就知道設為0(android.content.Context.MODE_PRIVATE)就可以了。

boolean silent = settings.getBoolean(”silentMode”, false);
獲得一個boolean值,這裡就會看到用Preferences的好處了:可以提供一個缺省值。也就是說如果Preference中不存在這個值的話,那麼就用後面的值作為返回指,這樣就省去了我們的if什麼什麼為空的判斷。


數據寫入:

[java] 
import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 
 
 
public class shardPerences extends Activity{ 
     
     
     
     
    private static final String TAG = "ActivityDemo"; 
     
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        Log.i(TAG, "start onCreate~~~"); 
        Button button1 = (Button)findViewById(R.id.button1); 
        button1.setOnClickListener(new OnClickListener() { 
             
            @Override 
            public void onClick(View v) { 
                // TODO Auto-generated method stub 
                 
                SharedPreferences spPreferences = getSharedPreferences("sundy ShardPreferences", Activity.MODE_PRIVATE); 
                 
                SharedPreferences.Editor editor = spPreferences.edit(); 
                 
                editor.PputString("name", "政府"); 
                editor.putString("address", "中南海"); 
                editor.putString("first", "ZFFF"); 
                editor.putString("Secnond", "寶寶"); 
                editor.putFloat("money", (float)3.233); 
                editor.commit(); 
                Toast.makeText(shardPerences.this, "成功建立", 3000); 
            } 
        }); 
         
    } 


作者:hjm4702192
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved