Android数据存取之Preferences

这种方式应该是用起来最简单的Android读写外部数据的方法了。他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单、 透明的方式来保存一些用户个性化设置的字体、颜色、位置等参数信息。一般的应用程序都会提供“设置”或者“首选项”的这样的界面,那么这些设置最后就可以 通过Preferences来保存,而程序员不需要知道它到底以什么形式保存的,保存在了什么地方。当然,如果你愿意保存其他的东西,也没有什么限制。只是在性能上不知道会有什么问题。

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

数据读取

view plain copy to clipboard print ?
  1. String PREFS_NAME =  "Note.sample.roiding.com" ;  
  2. SharedPreferences settings = getSharedPreferences(PREFS_NAME,  0 );  
  3. boolean  silent = settings.getBoolean( "silentMode" false );  
  4. String hello = settings.getString( "hello" "Hi" ); 
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文件中:

     

    view plain copy to clipboard print ?
    1. <manifest   xmlns:android = "http://schemas.android.com/apk/res/android"  
    2. package = "com.roiding.sample.note"  
    3. android:versionCode = "1"  
    4. android:versionName = "1.0.0" >  

    这里面的package。根据我目前的实验结果看,是这样的,欢迎指正。后面的那个int是用来声明读写模式,先不管那么多了,暂时就知道设为0(android.content.Context.MODE_PRIVATE)就可以了。

  • boolean silent = settings.getBoolean(”silentMode”, false);
    获得一个boolean值,这里就会看到用Preferences的好处了:可以提供一个缺省值。也就是说如果Preference中不存在这个值的话,那么就用后面的值作为返回指,这样就省去了我们的if什么什么为空的判断。

数据写入

view plain copy to clipboard print ?
  1. String PREFS_NAME =  "Note.sample.roiding.com" ;  
  2. SharedPreferences settings = getSharedPreferences(PREFS_NAME,  0 );  
  3. SharedPreferences.Editor editor = settings.edit();  
  4. editor.putBoolean( "silentMode" true );  
  5. editor.putString( "hello" "Hello~" );  
  6. editor.commit(); 
String PREFS_NAME = "Note.sample.roiding.com";SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);SharedPreferences.Editor editor = settings.edit();editor.putBoolean("silentMode", true);editor.putString("hello", "Hello~");editor.commit();

有了上面数据读取的代码,这里面的就容易理解了,只是别忘了最后的commit();

更多相关文章

  1. android四大组件--ContentProvider详解
  2. Android上的resample处理
  3. Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azur
  4. Android框架模式(1)-MVP入门
  5. 内容提供者相关技术
  6. Android(安卓)SparseArray 分析
  7. Android(安卓)之 SQLite简介
  8. 使用android快速开发框架afinal的FinalDb操作android数据库
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. android自动更新新版模块(简单,实用)
  2. android webView与js交互
  3. android View的快照与屏幕的截屏
  4. Android修改输入法Enter的文本
  5. Android P图形架构之三屏异显实现
  6. 新说android launch mode
  7. 修改Android ListView字体和颜色
  8. TextView 富文本学习六 - 设置了Clickabl
  9. Android EditText样式
  10. Android故障积累----(1/N)