SharedPreferences(转)

[功能]

大家在android开发中 一点有这样的需求 就是需要保存一下与该程序有关的属性设置的问题

比如:window xp 中 <假设系统盘为 C:/> 的位置为: C:\Program Files

 

那么在android中是怎样呢? 那就是:SharedPreferences

 

 

既然它是用来保存数据的 那么一点下面问题:

1. 如何创建

2. 如何加入数据

3. 如何取出数据

 

 

因为 很多程序都有这个需要 所以自己把该功能集成并列出一些接口函数 以后用的话 会方便很多 这个类名为:SharedPreferencesHelper

 

[代码]

1. 以指定名字来创建

 

Java代码  收藏代码
  1. SharedPreferences sp;  
  2.     SharedPreferences.Editor editor;  
  3.       
  4.     Context context;  
  5.       
  6.     public SharedPreferencesHelper(Context c,String name){  
  7.         context = c;  
  8.         sp = context.getSharedPreferences(name, 0);  
  9.         editor = sp.edit();  
  10.     }  

 

 

2. 以键值<String Key,String Value> 的方式加入数据

Java代码  收藏代码
  1. public void putValue(String key, String value){  
  2.         editor = sp.edit();  
  3.         editor.putString(key, value);  
  4.         editor.commit();  
  5.     }  

 

 

 

3. 以 String Key 为索引来取出数据

Java代码  收藏代码
  1. public String getValue(String key){  
  2.         return sp.getString(key, null);  
  3.     }  

 

 

 

 

4. 如何使用 SharedPreferencesHelper

Java代码  收藏代码
  1. package com.android.SharedPreferences;  
Java代码  收藏代码
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.TextView;  
Java代码  收藏代码
  1. /* 
  2.  * to access from: data/data/com.android.SharedPreferences/share_prefs 
  3.  */  
  4. public class SharedPreferencesUsage extends Activity {  
  5.  public final static String COLUMN_NAME ="name";  
  6.  public final static String COLUMN_MOBILE ="mobile";  
  7.    
  8.  SharedPreferencesHelper sp;  
  9.  /** Called when the activity is first created. */  
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         //setContentView(R.layout.main);  
  14.           
  15.         sp = new SharedPreferencesHelper(this, "contacts");  
  16.           
  17.         //1. to store some value  
  18.         sp.putValue(COLUMN_NAME, "Gryphone");  
  19.         sp.putValue(COLUMN_MOBILE, "123456789");  
  20.           
  21.           
  22.         //2. to fetch the value  
  23.         String name = sp.getValue(COLUMN_NAME);  
  24.         String mobile = sp.getValue(COLUMN_MOBILE);  
  25.           
  26.         TextView tv = new TextView(this);  
  27.         tv.setText("NAME:"+ name + "\n" + "MOBILE:" + mobile);  
  28.           
  29.         setContentView(tv);  
  30.     }  
  31. }  

 

 

 

5. 其他问题

* 文件存放路径: 因为我的这个例子的pack_name 为:package com.android.SharedPreferences;

  所以存放路径为:data/data/com.android.SharedPreferences/share_prefs/contacts.xml

* contacts.xml 的内容为:

Xml代码  收藏代码
  1. <?xml version='1.0' encoding='utf-8' standalone='yes' ?>  
  2. <map>  
  3. <string name="mobile">123456789</string>  
  4. <string name="name">Gryphone</string>  
  5. </map>  

 

 

* 取出的数据为:

 

转载自: http://www.iteye.com/topic/573212

posted @ 2014-09-28 15:40  杨斌_济南  阅读(348)  评论(0编辑  收藏  举报