Android的四种数据存储方式:
1. SharedPreferences
2. SQLite
3. Content Provider
4. File
---------------------
SharedPreferences:
1. 是一种轻型的数据存储方法;
2. 本质是基于 XML 文件存储 key-value 键值对数据;
3. 通常用来存储一些简单的配置信息。一般是放置当前应用的属性值,信息量不多,所以用数据库的话不划算,还可能造成时间上的浪费。
只能实现非常简单的存放数据和读取数据。SharedPreferences只能识别简单的数据类型,比如String、int,对于复杂的类型,比如自定义的类型,可能就无法存储了(或者通过转码操作转变为字符串也倒是可以存储)。
SharedPreferences属于Android自带的轻量级的存储类,效率并不是很高。
----------------------
要点:
1. SharedPreferences对象本身只能获取数据而不支持存储和修改,存储和修改是通过 Editor 对象实现的;
2. 实现 SharedPreferences 存储的步骤:
(1)获得 SharedPreferences 对象;
(2)获得 SharedPreferences.Editor 对象;
(3)通过 Editor 接口的 putXxx 方法保存 key-value对,其中的Xxx表示不同的数据类型;
(4)通过 Editor 接口的 commit 方法保存 key-value对。
 1 public class MainActivity extends ActionBarActivity {
 2     EditText username, password;
 3     SharedPreferences pre;
 4     CheckBox checkBox;
 5     Editor editor;
 6
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.fragment_main);
11         // SharedPreferences pref =
12         // PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
13
14         /*--------------------------
15         SharedPreferences pref = getSharedPreferences("myPref", MODE_PRIVATE);
16         Editor editor = pref.edit();
17         editor.putString("name", "zy");
18         editor.putInt("age", 22);
19         editor.putLong("time", System.currentTimeMillis());
20         editor.putBoolean("default", true);
21
22         editor.commit();
23         editor.remove("default");
24         editor.commit();
25         System.out.println(pref.getString("name", "xx"));
26         System.out.println(pref.getInt("age", 0));
27          */
28
29         // ----------------实例-------------
30         username = (EditText) findViewById(R.id.username);
31         password = (EditText) findViewById(R.id.password);
32         checkBox = (CheckBox) findViewById(R.id.savename);
33         pre = getSharedPreferences("userinfo", MODE_PRIVATE);
34         editor = pre.edit();
35         String name = pre.getString("username", "");
36         if (name == null || name.equals("")) {
37             checkBox.setChecked(false);
38         } else {
39             checkBox.setChecked(true);
40             username.setText(name);
41         }
42
43     }
44
45     public void doClick(View view) {
46         switch (view.getId()) {
47         case R.id.login:
48             String name = username.getText().toString().trim();
49             String pass = password.getText().toString().trim();
50             if ("zy".equals(name) && "123456".equals(pass)) {
51                 if (checkBox.isChecked()) {
52                     editor.putString("username", name);
53                     editor.commit();
54
55                 } else {
56                     editor.remove("username");
57                     editor.commit();
58                 }
59                 Toast.makeText(MainActivity.this, "成功了", 0).show();
60             } else {
61                 Toast.makeText(MainActivity.this, "失败咯", 0).show();
62             }
63
64             break;
65
66         case R.id.cancel:
67             break;
68         }
69     }
70 }

转载于:https://www.cnblogs.com/my334420/p/6729088.html

Android攻城狮数据存储之SharedPreferences相关推荐

  1. 写给即将/正在找工作的Android攻城狮

    写给即将/正在找工作的Android攻城狮 版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 这段时间从北上广深杭不断传来一两个月找不到工作的消息,我一 ...

  2. 写给即将正在找工作的Android攻城狮,算法太TM重要了

    一.认识鸿蒙 鸿蒙 微内核是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级. 鸿蒙OS实现模块化耦合,对应不同设备可弹性部署, ...

  3. Android攻城狮ListView

    适配器: 数据适配器:把复杂的数据填充在指定的视图界面上ArrayAdapter 数组适配器 用于绑定格式单一的数据 数据源:可以是集合或数组 SimpleAdapter 简单适配器:用于绑定格式复杂 ...

  4. Android攻城狮Gallery和ImageSwitcher制作图片浏览器

    使用Gallery 和 ImageSwitcher 制作图片浏览器 Gallery介绍 我们有时候在手机上或者PC上看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据 ...

  5. Android攻城狮fragment

    1 //1,fragment静态加载:MainActivity MainActivty1_2 Myfragment1 2 //2,fragment动态加载 :MainActivity Myfragme ...

  6. Android攻城狮ScrollView

    ScrollView 滚动视图 滚动视图是指当前拥有很多内容,屏幕显示不完整时,需要通过滚动来显示完整的视图. ----------------------------- ScrollBar分两种: ...

  7. Android攻城狮认识ContextMenu

    什么是ContextMenu? 例如Windows系统的右键菜单,在Android中长按某个文件夹,会跳出菜单,这个菜单就是ContextMenu. ContextMenu与OptionMenu的区别 ...

  8. Android攻城狮Handler简介

    Handler是什么? Handler是Android提供的一套用来更新UI的机制,也是一套消息处理机制,可以通过它发送消息,也可以通过它处理消息. 所有Activity生命周期回调的方法(例如onC ...

  9. Android攻城狮四大组件之Service

    组件篇--Service 当Android系统内存不足的时候,会杀死优先级别较低的Activity,而基本上Service的优先级要高于Activity,所以程序中如果含有 Service,那么该程序 ...

最新文章

  1. 水很深,我还是下去了
  2. 设计模式总结篇系列:适配器模式(Adapter)
  3. 1054 The Dominant Color (20 分)【难度: 简单 / 知识点: 思维】
  4. 带有Oracle Digital Assistant和Fn Project的会话式UI。 第二部分
  5. 协作安装程序应用一例
  6. jQuery: 操作select option方法集合
  7. 华为回应“发射卫星抢占6G”:假消息
  8. JavaScript 中 substr 和 substring的区别
  9. C#中只使用Invokerequired来判断是不是UI线程可靠吗?
  10. Android Spinner(下拉菜单)常用属性与点击事件获取值
  11. 003、使用MegaCli工具查看Raid磁盘阵列状态
  12. 食品品牌最全VI目录 - 塔望食品品牌全案策划VI设计清单
  13. 【2015-2016,我在路上】
  14. html文件svchost,解决html文件的DropFileName = svchost.exe木马
  15. Githut Token (hidden): Githut 安装验证
  16. 梦幻西游战斗中服务器维护,梦幻西游10月22日维护公告 连续战斗自动问题修复...
  17. 电脑文件剪切到U盘,为什么不见了?这4个技巧帮你找回丢失文件
  18. 自动化一切!那些我每天使用的快捷自动化工作
  19. c++ windows 蓝牙库_c++中蓝牙编程的库类
  20. android studio ant编译,Android Studio编译cocos2dx项目

热门文章

  1. 私域流量sop社群运营规划工作计划表格方案模板2022
  2. 前端剑法第三式————碎岩
  3. Djano3.0使用-CBV使用实例
  4. JS校验统一社会信用代码的真实性
  5. node 单元测试_如何在Node中模拟对单元测试的请求
  6. Python百日百行代码挑战-day8,day9,day10,游戏实战系列-五子棋
  7. 在阿里云ACP认证考试中授权码有效期时限是多久?
  8. 听李天飞《大话西游》有感
  9. i58400升级可以换什么cpu_罗敏:老式碰锁可以换什么锁?老式门锁该如何
  10. WPS格式转换成Word的方法