安卓-SharedPreferences和Editor保存数据
SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据。
在做连连看游戏的时候,需要保存游戏进度,所以稍微用了一下,这里做个小结。
我的做法是,首先给出如下定义:
privateSharedPreferencessp;privatestaticStringMY_APP="MYAPP";
然后再写两个方法,执行数据的读写操作。
/***保存数据*/publicvoidsaveData(Stringkey,intvalue){//获取SharedPreferences对象sp=MainActivity.this.getSharedPreferences(MY_APP,MODE_PRIVATE);//存入数据,除了putInt还有putString等其他方法,可以自己挖掘一下~//另外,每次存入的就是“key-value”形式的键值对,很好理解Editoreditor=sp.edit();editor.putInt(key,value);editor.commit();}/***读取数据,找到返回数据内容,否则返回-1*/publicintreadData(Stringkey){sp=MainActivity.this.getSharedPreferences(MY_APP,MODE_PRIVATE);intv=sp.getInt(key,0);if(v!=0){returnv;}else{return-1;}}
然后在程序里就可以使用这两个方法来存取数据了。如果要存的数据项不多但是比较频繁的话,可以把key也定义为静态变量,这样的话使用起来比较方便,修改也比较容易。
这里使用的putInt和readData返回值是我根据自己程序的需要进行设置的,具体要怎么写以及是否需要加一些约束条件,要根据自己的程序做适当的调整,需求明确的话,这个做起来也很easy的。
下面是一段完整的代码
packagecom.test.leetlesharedpreferences;importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.SharedPreferences;importandroid.content.SharedPreferences.Editor;importandroid.view.Menu;publicclassMainActivityextendsActivity{privateSharedPreferencessp;privatestaticStringMY_APP="MYAPP";privatestaticStringMY_KEYINT="keyint";privatestaticStringMY_KEYSTRING="keystring";@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("readInt(MY_KEYINT)="+Integer.toString(readInt(MY_KEYINT)));System.out.println("readString(MY_KEYSTRING)="+readString(MY_KEYSTRING));System.out.println("--------我是分割线----------------------");saveData(MY_KEYINT,100000);saveData(MY_KEYSTRING,"那么问题来了");System.out.println("readInt(MY_KEYINT)="+Integer.toString(readInt(MY_KEYINT)));System.out.println("readString(MY_KEYSTRING)="+readString(MY_KEYSTRING));}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.main,menu);returntrue;}/***两个写数据的方法*/privatevoidsaveData(Stringkey,intvalue){sp=this.getSharedPreferences(MY_APP,MODE_PRIVATE);Editoreditor=sp.edit();editor.putInt(key,value);editor.commit();}privatevoidsaveData(Stringkey,Stringvalue){sp=this.getSharedPreferences(MY_APP,MODE_PRIVATE);Editoreditor=sp.edit();editor.putString(key,value);editor.commit();}/***两个读数据的方法*/privateintreadInt(Stringkey){sp=MainActivity.this.getSharedPreferences(MY_APP,MODE_PRIVATE);returnsp.getInt(key,0);}privateStringreadString(Stringkey){sp=this.getSharedPreferences(MY_APP,MODE_PRIVATE);returnsp.getString(key,"没有数据");}}
结果如下
2015.01.02
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。