Android数据存储之SharedPreferences-阿里云开发者社区

开发者社区> 文艺小青年> 正文

Android数据存储之SharedPreferences

简介:
+关注继续查看

SharedPreferences是一种轻型的数据存储方式,基于XML文件存储key-value pairs键值对数据,通常用来存储一些简单的配置信息。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。每一个 SharedPreferences 文件都是由framework管理的并且可以是私有或者可共享的。 

数据存储

新建一个Android项目,在MainActivity的onCreate方法中,调用getSharedPreferences方法,需要注意的是,如果已经存在文件则不会新建,如果键值对不存在则会继续添加到里面,如果存在名字相同,值不同则会覆盖原有的值。

1
2
3
4
5
6
7
Context context=MainActivity.this;
SharedPreferences shared=context.getSharedPreferences("Test", MODE_PRIVATE);
Editor editor=shared.edit();
editor.putString("Name""FlyElephant");
editor.putInt("Age", 24);
editor.putBoolean("IsMarried"false);
editor.commit();

 存储完之后这个时候之后就发现,文件夹下多了一个Test.xml,全路径应该是data/data/com.example.preference/shared_prefs/Test.xml

导出之后发现xml中内容为:

1
2
3
4
5
6
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="Name">FlyElephant</string>
<int name="Age" value="24" />
<boolean name="IsMarried" value="false" />
</map>

显示数据

设置一个按钮点击事件loadData

1
2
3
4
5
6
7
8
public void loadData(View view){
     SharedPreferences shared=MainActivity.this.getSharedPreferences("Test", MODE_PRIVATE);
     EditText editText=(EditText) findViewById(R.id.edit_sharedName);
     editText.setText(shared.getString("Name"""));
     EditText editAge=(EditText) findViewById(R.id.edit_sharedAge);
     String ageString=String.valueOf(shared.getInt("Age"0));
     editAge.setText(ageString);
 }

 数据显示结果:

删除节点

点击第二个按钮,执行的事件:

1
2
3
4
5
6
7
public void deleteNode(View view) {
     SharedPreferences shared=MainActivity.this.getSharedPreferences("Test", MODE_PRIVATE);
     Editor editor=shared.edit();
     editor.remove("Age");
     editor.commit();
     Toast.makeText(MainActivity.this"删除成功",Toast.LENGTH_SHORT).show();
 }

效果如下:

删除文件

根据路径,调用一下File就直接删除了这个文件:

1
2
3
4
5
6
7
8
9
public void deleteFile(View view){
    String pathString="/data/data/"+getPackageName()+"/shared_prefs";
    File file=new File(pathString,"Test.xml");
    Log.i("com.example.preference",pathString);
    if (file.exists()) {
        file.delete();
    }
    Toast.makeText(MainActivity.this"文件删除成功",Toast.LENGTH_SHORT).show();
}
本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4044683.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【译】Databricks使用Spark Streaming和Delta Lake对流式数据进行数据质量监控介绍
本文主要对Databricks如何使用Spark Streaming和Delta Lake对流式数据进行数据质量监控的方法和架构进行了介绍,本文探讨了一种数据管理架构,该架构可以在数据到达时,通过主动监控和分析来检测流式数据中损坏或不良的数据,并且不会造成瓶颈。
1099 0
Android存储之SQLite数据库
Android存储之SQLite数据库数据库 创建数据库 package ……; import android.
704 0
Android存储之SQLite数据库
Android存储之SQLite数据库数据库 创建数据库 package ……; import android.
497 0
DL之RNN:人工智能为你写小说——基于TF利用RNN算法训练数据集(William Shakespeare的《Coriolanus》)替代你写英语小说短文、训练&测试过程全记录
DL之RNN:人工智能为你写小说——基于TF利用RNN算法训练数据集(William Shakespeare的《Coriolanus》)替代你写英语小说短文、训练&测试过程全记录
14 0
Android数据存储
IO :http://www.cnblogs.com/hxsyl/p/3302852.html getParentFile()的返回值是File型的。 而getParent() 的返回值是String型的。
661 0
k8s与监控--prometheus的远端存储
前言 prometheus在容器云的领域实力毋庸置疑,越来越多的云原生组件直接提供prometheus的metrics接口,无需额外的exporter。所以采用prometheus作为整个集群的监控方案是合适的。
2867 0
3576
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载