简单的说 SharedPreferences 就是使用键值对的方式将数据存储在一个xml文件中,可以使用getxxx(key,value),setxxx(key,value)方法读写数据。在每个应用程序的
Context中都有SharedPreferences对象,可使用getSharedPreferences()方法得到该实例
这个例程中在DBTest.java 得到SharedPreferences 对象,并写入数据,而在DBTest2.java中取得得到SharedPreferences对象,并读取数据。
在DBTest有一个按钮,点击此按钮进入DBTest2,而在DBTest2中显示SharedPreferences对象取得的数据
在SharedPreferences中是使用键值对(key,value)的方式来存取数据,这些数据是存储在一个xml文件中,这个xml文件是在data/data/程序包名/shared_prefs/文件下的



详细实现看代码:

public class DBTest extends Activity {private SharedPreferences sp;private TextView tv;private Button btn;@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);//每个应用程序的Context中都有SharedPreferences对象,获得SharedPreferences,并指定名称为demo,访问权限为本应用程序可访问//Context.MODE_READABLE,其他应用程序可读//Context.MODE_WRITEABLE,其他应用程序可写权限//Context.MODE_PRIVATE只有当前程序可访问        sp = this.getSharedPreferences("demo", Context.MODE_PRIVATE);        //使用SharedPreferences的内部类Editor对象对demo.xml文件进行编辑        SharedPreferences.Editor editor = sp.edit();        //编辑数据        editor.putString("name", "zhangsan");        editor.putInt("id", 123);        editor.putString("class", "dasan");        editor.commit();//最后要commit否则,修改数据无效              tv = (TextView)findViewById(R.id.tv);        tv.setText(sp.toString());//此行纯属测试,无意义        btn = (Button)findViewById(R.id.btn);        btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(DBTest.this,DBTest2.class));}});    }}

public class DBTest2 extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TextView tv = new TextView(this);SharedPreferences sp = this.getSharedPreferences("demo", Context.MODE_PRIVATE);//同样的方法,得到SharedPreferences实例SharedPreferences.Editor editor = sp.edit();editor.putInt("fenshu", 96);//可以对SharedPreferences对象进行修改editor.commit();//一定要commit,否则无法读取//显示数据tv.setText("id:"+sp.getInt("id", 0)+" name:"+sp.getString("name", null)+" class:"+sp.getString("class", null)+" fenshu:"+sp.getInt("fenshu", 0));setContentView(tv);}}

<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><int name="id" value="123" /><string name="class">dasan</string><int name="fenshu" value="96" /><string name="name">zhangsan</string></map>

该文件是存储在data/data/me.android.dbtest/shared_prefs/demo.xml,me.android.dbtest是本应用程序的包名。在eclipse中运行本程序后,
打开File Explorer
(可在Window->show view->others->general->file explorer打开)并可以得到此xml文件

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. ViewModels 和 LiveData:模式 +反模式
  3. Android(安卓)Studio使用AIDL技术进行SDK开发
  4. Android(安卓)Audio代码分析5 - 函数getAudioSessionId
  5. Android(第一季重制版)
  6. Android(摩托)HttpURLConnection getInputStream()堵塞
  7. Android-Room自定义类型
  8. Android手写数据库框架设计(删改查)
  9. Android(安卓)MVVM Demo

随机推荐

  1. 一些优秀的 Android 开发专栏推荐
  2. Android SDK 2.3与Eclipse开发环境搭建
  3. 从零开始--系统深入学习android(实践-让我
  4. 内存泄漏,关于异步回调导致的内存泄漏,使用
  5. Android BroadcastReceiver(广播)实现消
  6. Android官方架构组件Paging:分页库的设计
  7. Android隐藏状态栏 全屏
  8. android中JNI使用探究
  9. [Android Studio 权威教程]打包、生成jks密
  10. Android和iPhone应用程序界面布局示例