Android攻城狮数据存储之SharedPreferences
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相关推荐
- 写给即将/正在找工作的Android攻城狮
写给即将/正在找工作的Android攻城狮 版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 这段时间从北上广深杭不断传来一两个月找不到工作的消息,我一 ...
- 写给即将正在找工作的Android攻城狮,算法太TM重要了
一.认识鸿蒙 鸿蒙 微内核是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级. 鸿蒙OS实现模块化耦合,对应不同设备可弹性部署, ...
- Android攻城狮ListView
适配器: 数据适配器:把复杂的数据填充在指定的视图界面上ArrayAdapter 数组适配器 用于绑定格式单一的数据 数据源:可以是集合或数组 SimpleAdapter 简单适配器:用于绑定格式复杂 ...
- Android攻城狮Gallery和ImageSwitcher制作图片浏览器
使用Gallery 和 ImageSwitcher 制作图片浏览器 Gallery介绍 我们有时候在手机上或者PC上看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据 ...
- Android攻城狮fragment
1 //1,fragment静态加载:MainActivity MainActivty1_2 Myfragment1 2 //2,fragment动态加载 :MainActivity Myfragme ...
- Android攻城狮ScrollView
ScrollView 滚动视图 滚动视图是指当前拥有很多内容,屏幕显示不完整时,需要通过滚动来显示完整的视图. ----------------------------- ScrollBar分两种: ...
- Android攻城狮认识ContextMenu
什么是ContextMenu? 例如Windows系统的右键菜单,在Android中长按某个文件夹,会跳出菜单,这个菜单就是ContextMenu. ContextMenu与OptionMenu的区别 ...
- Android攻城狮Handler简介
Handler是什么? Handler是Android提供的一套用来更新UI的机制,也是一套消息处理机制,可以通过它发送消息,也可以通过它处理消息. 所有Activity生命周期回调的方法(例如onC ...
- Android攻城狮四大组件之Service
组件篇--Service 当Android系统内存不足的时候,会杀死优先级别较低的Activity,而基本上Service的优先级要高于Activity,所以程序中如果含有 Service,那么该程序 ...
最新文章
- 水很深,我还是下去了
- 设计模式总结篇系列:适配器模式(Adapter)
- 1054 The Dominant Color (20 分)【难度: 简单 / 知识点: 思维】
- 带有Oracle Digital Assistant和Fn Project的会话式UI。 第二部分
- 协作安装程序应用一例
- jQuery: 操作select option方法集合
- 华为回应“发射卫星抢占6G”:假消息
- JavaScript 中 substr 和 substring的区别
- C#中只使用Invokerequired来判断是不是UI线程可靠吗?
- Android Spinner(下拉菜单)常用属性与点击事件获取值
- 003、使用MegaCli工具查看Raid磁盘阵列状态
- 食品品牌最全VI目录 - 塔望食品品牌全案策划VI设计清单
- 【2015-2016,我在路上】
- html文件svchost,解决html文件的DropFileName = svchost.exe木马
- Githut Token (hidden): Githut 安装验证
- 梦幻西游战斗中服务器维护,梦幻西游10月22日维护公告 连续战斗自动问题修复...
- 电脑文件剪切到U盘,为什么不见了?这4个技巧帮你找回丢失文件
- 自动化一切!那些我每天使用的快捷自动化工作
- c++ windows 蓝牙库_c++中蓝牙编程的库类
- android studio ant编译,Android Studio编译cocos2dx项目