分类
手机编程 编程开发

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 的内容为:

 

 

* 取出的数据为:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注