Android的数据存储与访问有一下几中方式:
下面我们来谈谈SharedPreferences(参数)存储方式的使用
很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下:
因为 很多程序都有这个需要 所以自己把该功能集成并列出一些接口函数 以后用的话 会方便很多 这个类名命名为SharedPreferencesHelper
java代码
-----------------------------------------------------------------------1.创建
SharedPreferences sp;
SharedPreferences.Editor editor;
Context context;
public SharedPreferencesHelper(Context c,String name){
context = c;
sp = context.getSharedPreferences(name, 0);
editor = sp.edit();
}
2.以键值<String Key,String Value> 的方式加入数据
public void putValue(String key, String value){
editor = sp.edit();
editor.putString(key, value);
editor.commit();
}
3.以 String Key 为索引来取出数据public String getValue(String key){
return sp.getString(key, null);
}
----------------------------------------------------------------------------------------------------------------------------------------------------
如何使用SharedPreferences呢:
/*
* to access from: data/data/com.android.SharedPreferences/share_prefs
*/
public class SharedPreferencesUsage extends Activity {
public final static String COLUMN_NAME ="name";
public final static String COLUMN_MOBILE ="mobile";
SharedPreferencesHelper sp;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
sp = new SharedPreferencesHelper(this, "contacts");
//1. to store some value
sp.putValue(COLUMN_NAME, "GUANGZHOU");
sp.putValue(COLUMN_MOBILE, "123456789");
//2. to fetch the value
String name = sp.getValue(COLUMN_NAME);
String mobile = sp.getValue(COLUMN_MOBILE);
TextView tv = new TextView(this);
tv.setText("NAME:"+ name + "\n" + "MOBILE:" + mobile);
setContentView(tv);
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------
XML代码
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="mobile">123456789</string>
<string name="name">GUANGZHOU</string>
</map>