Android存储-SharedPreferences

Android的数据存储

Android系统中,每个应用软件数据(包括文件)为该应用软件所私有。但是,Android同样也提供了一种标准方式或接口,让应用软件将私有数据开放,供其他应用软件使用。

Android中,存储方式有:SharedPreferences、文件存储、SQLite数据库、Content provider(内容提供器)和网络。

1.          SharedPreferences方式

SharedPreferences是一种轻量级存储方式,适合存储登陆信息、个人基本信息等简单的key-value形式的值,它可以保存一些基本的数据类型,如String,int,Boolean等。下面通过简单实例来讲解,功能是存储个人基本信息。代码如下:

public void onCreate(Bundle savedInstanceState)

{

        super.onCreate(savedInstanceState);

       

        setContentView(R.layout.sharedpreferences);

       

        nameET = (EditText)findViewById(R.id.name);

        sexET = (EditText)findViewById(R.id.sex);

        habitET = (EditText)findViewById(R.id.habit);

        employeeCB = (CheckBox)findViewById(R.id.isEmployee);

        companySize = (RadioGroup)findViewById(R.id.companySize);

        bigCompany = (RadioButton) findViewById(R.id.bigCompany);

        mediumCompany = (RadioButton) findViewById(R.id.mediumCompany);

        smallCompany = (RadioButton) findViewById(R.id.smallCompany);

       

        //注册CheckBox对象状态变化的监听端口

        employeeCB.setOnCheckedChangeListener(this);

       

        SharedPreferences sharedPreferences = getSharedPreferences(NAME_SHARED, Activity.MODE_PRIVATE);

 

        //如果name不存在,以""代替

        nameET.setText(sharedPreferences.getString("name", ""));

        sexET.setText(sharedPreferences.getString("sex",""));

        habitET.setText(sharedPreferences.getString("habit", ""));

        employeeCB.setChecked(sharedPreferences.getBoolean("isEmployee", false));

        companySize.check(sharedPreferences.getInt("companySize", -1));

       

        onCheckedChanged(employeeCB, employeeCB.isChecked());

}

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)

{

        System.out.println("---onCheckedChanged");

        bigCompany.setEnabled(isChecked);

        mediumCompany.setEnabled(isChecked);

        smallCompany.setEnabled(isChecked);

}

   

    @Override

    protected void onStop()

    {

        //退出时保存数据,首先获取SharedPreferences对象,

        SharedPreferences mySharedPreferences = getSharedPreferences(NAME_SHARED, Activity.MODE_PRIVATE);

        SharedPreferences.Editor myEditor = mySharedPreferences.edit();

        myEditor.putString("name", nameET.getText().toString());

        myEditor.putString("sex",sexET.getText().toString());

        myEditor.putString("habit", habitET.getText().toString());

        myEditor.putBoolean("isEmployee", employeeCB.isChecked());

        myEditor.putInt("companySize", companySize.getCheckedRadioButtonId());

 

        //提交数据,保存

        myEditor.commit();

        super.onStop();

}

用户点击“是否工作”,程序会根据其状态来确定是否会显示公司规模,当所有都选择完成后,用户退出程序,程序会调用onStop(),自动保存当前所有的数据,首先,获取通过getSharedPreferences()获取SharedPreferences对象,在通过SharedPreferences对象获取SharedPreferences.Editor对象,利用SharedPreferences.Editor对象完成数据的存储与获取。

保存的数据会以XML形式保存,保存位置为:/data/data/<package name>/shared_prefs/xxx.xml      DDMS中的File Explorer中可以看到。这个文件可以导出来查看,如下:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

- <map>

  <int name="companySize" value="2131034129" />

  <string name="sex">man</string>

  <string name="habit">music</string>

  <boolean name="isEmployee" value="true" />

  <string name="name">wanglejun</string>

</map>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值