当前位置: 代码迷 >> Android >> android 数据储存——SharedPreferences,有代码实现,简单易懂
  详细解决方案

android 数据储存——SharedPreferences,有代码实现,简单易懂

热度:110   发布时间:2016-05-01 17:00:03.0
android 数据存储——SharedPreferences,有代码实现,简单易懂

简单的说 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文件

?

  相关解决方案