




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在上一讲中,我们学习了如何将数据存储在SD卡中数据存储之File文件存储 即SD卡的写入与读取,这是一种存储方式,这一讲我们来学习一下使用SharedPreferences存储数据。1.SharedPreferences介绍1)SharedPreferences是一种参数共享的存储方式,它是通过键值对key-value的形式来储存的。所以读取方式也是通过读取键值对来的。2) 这种存储方式主要用在存储一些简单的状态信息,比如在实际的软件界面设计中,我们需要保存一些系统的参数,例如屏幕大小和亮度、高度等。在没有数据的情况下我们把这些参数设置到参数共享的文件中以便下次访问。3) SharedPreferences的基本用法:1、SharedPreferences preferences =context.getSharedPreferences(login, Context.MODE_PRIVATE);2、通过SharedPreferences .edit方法获得一个Editor对象。3、通过SharedPreferences 的Editor.putXXX方法放置键值对保存到文件中。4、最后调用commit方法保存文件。只有事务结束之后才能提交。4)查看 API文档中的SharedPreferences类详细介绍 这个类 SharedPreferences 提供了一个通用的框架让你存储和检索已经存在的原生数据类型的键值对.你可以使用 SharedPreferences来保存任何的原生数据:booleans, floats, ints, longs, and strings.(所以这边不建议用共享参数来保存一些复杂的数据类型:比如对象,图片等)这些数据都会在用户会话期间保留(在应用程序进程关闭掉存储起来) 在你的应用获取到一个 SharedPreferences 对象,需要使用下面两种方法的一种: (1) getSharedPreferences() (2) getPreferences() 两种方式的区别:调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享. 调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用. 5) 写入数据1. 调用 edit() 方法来得到一个 SharedPreferences.Editor.2. 调用 putBoolean()和 putString()方法来添加数据3. 调用 commit() 方法来提交新的数据。 6) 读取数据使用 SharedPreferences 中的方法如 getBoolean() 和 getString().2. 程序实现1) AndroidMainifest.xml 文件,这里面包含了单元测试的内容,如有不懂可以参考前面几讲内容介绍htmlview plaincopy1. 2. 6. 7. 10. 11. 12. 17. 18. 21. 22. 23. 24. 25. 26. 27. 28. 2) 程序的布局文件,只有一个读取的按钮,写入数据在MainActivity的onCreate()方法中写入。htmlview plaincopy1. 10. 11. 20. 21. 3) MySharedPrefrences.java 类,这个主要是用来实现sharedPreferences存储的方法javaview plaincopy1. packagecom.android.sharedprefrencesdemo;2. 3. importjava.util.HashMap;4. importjava.util.Map;5. 6. importandroid.content.Context;7. importandroid.content.SharedPreferences;8. 9. /*10. *实现往共享参数中存储简单的用户名和密码11. *12. *authorAHuier13. */14. publicclassMySharedPrefrences15. 16. privateContextcontext;17. 18. publicMySharedPrefrences(Contextcontext)19. this.context=context;20. 21. 22. /*23. *查看API文档:getSharedPreferences(Stringname,intmode)方法根据参数文件name24. *检索和保存其内容,改方法会返回一个SharedPreferences对象,通过它可以检索和修改它的值,注意任何调用相同name25. *的都只返回一个SharedPreferences的实例(单例模式),这就意味这它们会看到批次修改的内容。26. *参数:27. *name:所需的参数文件,如果这个name的对应的参数文件不存在,它就会被28. *editor对象所创建(通过SharedPreferences.edit()方法获得),然后提交修改29. *(通过Emit()方法).30. *mode:工作模式。使用0或者MODE_PRIVATE作为默认的操作,31. *MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE用来控制读写权限。在多个进程维护同样的32. *SharedPreferences文件时会用到MODE_MULTI_PROCESS。33. *注意MODE_MULTI_PROCESS一般是用在Android2.3版本中或者更低版本,并且在最近的版本中它是被默认关闭的。34. *工作模式有以下四种:35. *MODE_PRIVATE36. *MODE_WORLD_READABLE37. *MODE_WORLD_WRITEABLE38. *MODE_MULTI_PROCESS39. *Returns:返回一个SharedPreferences的单例用来检索和修改这个共享参数40. */41. publicbooleansaveMessage(Stringname,Stringpswd)42. booleanflag=false;43. SharedPreferencessharedPreferences=context.getSharedPreferences(userInfo,44. Context.MODE_PRIVATE);45. 46. /对数据进行编辑,返回的是一个Editor对象47. SharedPreferences.Editoreditor=sharedPreferences.edit();48. editor.putString(name,name);49. editor.putString(pswd,pswd);50. flag=mit();/讲数据持久化到存储介质中,有可能是手机内置存储,有可能是SD卡。51. returnflag;52. 53. 54. publicMapgetMessage()55. Mapmap=newHashMap();56. SharedPreferencessharedPreferences=context.getSharedPreferences(userInfo,Context.MODE_PRIVATE);57. /从共享参数SharedPreferences取出数据58. Stringname=sharedPreferences.getString(name,);/如果取不到,默认值为空59. Stringpswd=sharedPreferences.getString(pswd,);/如果取不到,默认值为空60. /将数据put到HashMap中61. map.put(name,name);62. map.put(pswd,pswd);63. returnmap;64. 65. 66. 4) MainActivity.java 类,程序的主文件javaview plaincopy1. packagecom.android.sharedprefrencesdemo;2. 3. importjava.util.Map;4. 5. importandroid.os.Bundle;6. importandroid.app.Activity;7. importandroid.content.Context;8. importandroid.util.Log;9. importandroid.view.Menu;10. importandroid.view.View;11. importandroid.view.View.OnClickListener;12. importandroid.widget.Button;13. 14. publicclassMainActivityextendsActivity15. 16. privatestaticfinalStringTAG=MainActivity;17. privateButtonbutton;18. 19. Override20. protectedvoidonCreate(BundlesavedInstanceState)21. super.onCreate(savedInstanceState);22. setContentView(R.layout.activity_main);23. initComponent();24. save();25. button.setOnClickListener(newOnClickListener()26. 27. Override28. publicvoidonClick(Viewv)29. /TODOAuto-generatedmethodstub30. getMsInfo();31. 32. );33. 34. 35. Override36. publicbooleanonCreateOptionsMenu(Menumenu)37. /Inflatethemenu;thisaddsitemstotheactionbarifitispresent.38. getMenuInflater().inflate(R.menu.main,menu);39. returntrue;40. 41. 42. privatevoidinitComponent()43. button=(Button)findViewById(R.id.button1);44. 45. 46. publicvoidsave()47. /Contextcontext=getContext();48. MySharedPrefrencesmySharedPrefrences=newMySharedPrefrences(MainActivity.this);49. booleanflag=mySharedPrefrences.saveMessage(admin,1423456);50. Log.i(TAG,-+flag);51. 52. 53. publicvoidgetMsInfo()54. /Contextcontext=getContext();55. MySharedPrefrencesmySharedPrefrences=newMySharedPrefrences(MainActivity.this);56. Mapmap=mySharedPrefrences.getMessage();57. Log.i(TAG,-+map.toString();58. 59. 60. 5) MyTest.java 单元测试类javaview plaincopy1. packagecom.android.sharedprefrencesdemo;2. 3. importjava.util.Map;4. 5. importandroid.content.Context;6. importandroid.test.AndroidTestCase;7. importandroid.util.Log;8. 9. publicclassMyTestextendsAndroidTestCase10. 11. privatestaticfinalStringTAG=MyTest;12. 13. publicMyTest()14. /TODOAuto-generatedconstructorstub15. 16. 17. publicvoidsave()18. Contextcontext=getContext();19. MySharedPrefrencesmySharedPrefrence
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年冷链物流行业市场布局分析报告
- 2025年健身产业健身健康管理市场前景预测报告
- 2025年环保科技行业全球发展趋势与应用前景研究报告
- 2025年智能穿戴行业智能穿戴设备技术创新与市场发展分析研究报告
- 2025年智能家居行业全球市场竞争格局及发展趋势报告
- 2025年绿色能源行业可再生能源发展前景预测报告
- 飞行培训合作协议模板及注意事项
- 企业员工劳动合同管理及风险防范
- 基金从业考试 付款及答案解析
- 科目三安全文明驾驶常识考试题库及答案解析
- 水利监理人员安全培训课件
- 2025-2026学年岭美版(2024)小学美术三年级上册(全册)教学设计(附目录P148)
- 培训学校前台工作
- 2025党风廉政建设知识题库(含参考答案)
- 第五课 网络的搭建说课稿-2025-2026学年初中信息技术(信息科技)初中二年级(上册)教科版(云南)
- 东岸文化传媒劳务合同4篇
- 上甘岭战役课件
- GB/T 45951-2025科技馆常设展览实施通用流程
- 医院安全生产知识培训课件
- (2025)汽车驾驶员(技师)考试题库及答案
- 中职高考英语一轮复习课件(名词)
评论
0/150
提交评论