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(); } |
作者:FlyElephant
出处:http://www.cnblogs.com/xiaofeixiang
说明:博客经个人辛苦努力所得,如有转载会特别申明,博客不求技惊四座,但求与有缘人分享个人学习知识,生活学习提高之用,博客所有权归本人和博客园所有,如有转载请在显著位置给出博文链接和作者姓名,否则本人将付诸法律。
出处:http://www.cnblogs.com/xiaofeixiang
说明:博客经个人辛苦努力所得,如有转载会特别申明,博客不求技惊四座,但求与有缘人分享个人学习知识,生活学习提高之用,博客所有权归本人和博客园所有,如有转载请在显著位置给出博文链接和作者姓名,否则本人将付诸法律。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步