`
zhujianjia
  • 浏览: 478116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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() {



@Override

public void onClick(View v) {

startActivity(new Intent(DBTest.this,DBTest2.class));

}

});
    }
}

 

public class DBTest2 extends Activity {

@Override

protected 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文件

 

  • 大小: 19.5 KB
  • 大小: 15.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics