小猪的Android入门之路 Day 7 part 2
小猪的Android入门之路 Day 7 part 2
Android的数据存储与訪问之——SharedPreferences(保存偏好參数)
---转载请注明出处:coder-pig
本节引言:
在Part 1中我们学会了Android中文件的读写,而在Part 2中我们会介绍一个轻量级的存储类——
SharedPreferences(偏好參数保存),就是用来保存软件中用户的一些设置,比方一个游戏的app,用户
能够自己设置是否开游戏音,是否自己主动登录等!下次启动app时就不用用户再次设置了!我们都知道
在Windows系统下的软件通常使用ini文件作为配置文件,而在J2SE中使用properties属性文件与xml
文件来保存软件的配置信息;而在Android中我们经常常使用SharedPreferences进行软件配置的保存,当然
他的背后还是使用xml文件进行存储数据的!好了,開始part 2的学习吧!
本节学习路线图:
正文:
SharePreferences的引入与使用流程:
代码演示样例:
效果图:
流程是输入账号password后点击登录,将信息保存到SharedPreference文件里,
然后重新启动app,看到数据已经显示在文本框中了
同一时候打开File Expoler打开data/data/<包名>能够看到在shared_prefs文件夹下生成了一个xml文件
点击导出到桌面能够看到里面的内容:
參考代码下载:代码下载
读写其它应用的SharedPreferences
代码演示样例:
效果图:
就是读取上一个Demo中存储好的SharedPreferences,然后通过Toast显示出来
代码非常easy,就一个Activity,这里就贴一下吧!
package com.example.sharedpreferencesdemo2; import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity { private Button btnshow;
private Context othercontext;
private SharedPreferences sp; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnshow = (Button) findViewById(R.id.btnshow);
btnshow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//获得第一个应用的包名,从而获得相应的Context,须要对异常进行捕获
try {
othercontext = createPackageContext("com.jay.example.sharedpreferencedemo1",Context.CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {e.printStackTrace();} //依据Context取得相应的SharedPreferences
sp = othercontext.getSharedPreferences("mysp",Context.MODE_WORLD_READABLE);
String name = sp.getString("username", "");
String passwd = sp.getString("passwd", "");
Toast.makeText(getApplicationContext(), "Demo1的SharedPreference存的的用户名为:" + name + "\npassword为" + passwd, Toast.LENGTH_SHORT).show();
}
});
}
}
ps:好了,关于SharedPreferences的使用就说到这里,事实上对于xml文件,我们也能够自己进行解析,比方Android
特有的XMLpull解析器,或者用DOM,SAX等在兴许会专门总结下xml文件的解析,敬请期待,另外谢谢各位朋友的
支持!写博一段时间了感触非常多非常多,我不是什么大牛,不会什么高大上的技术,我仅仅是默默地做着一些微不足道的
事,我仅仅是希望自己写的文章思清晰点,给想学习编程又感到迷茫的朋友一个方向,不至于无从下手,现在市面上相关
的參考书鱼龙混杂,对一些知识讲得云里雾里的,学完善像没学一样!我个人的思想是先掌握基本理论基础,知道怎
么用!学习完基础以后,更重要的就是实践,通过项目去积累编码量,巩固知识点,先从小的项目入手,最后再做一个
大的项目!本系列的目的就是入门,接着第二个系列就是通过实际的小项目去应用这些基础知识,敬请期待哈!
再一次感谢各位朋友的支持,我会坚持写下去的!仅仅要有人愿意看!
小猪的Android入门之路 Day 7 part 2的更多相关文章
- 小猪的Android入门之路 Day 3 - part 3
小猪的Android入门之路 Day 3 - part 3 各种UI组件的学习 Part 3 本节引言: 在前面两个部分中我们对Android中一些比較经常使用的基本组件进行了一个了解, part 1 ...
- 小猪的Android入门之路 day 1
小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...
- 小猪的Android入门之路 Day 4 - part 1
小猪的Android入门之路 Day 4 - part 1 Android事件处理机制之--基于监听的事件处理机制 本节引言: 在開始本个章节前,我们先回想下,如今我们已经知道了android的一些相 ...
- Android学习之路——简易版微信为例(一)
这是“Android学习之路”系列文章的开篇,可能会让大家有些失望——这篇文章中我们不介绍简易版微信的实现(不过不是标题党哦,我会在后续博文中一步步实现这个应用程序的).这里主要是和广大园友们聊聊一个 ...
- Android入门教程之我见
真正的从安卓入门学习到实际工作也差不多一年时间了,也做了几个项目.在这期间经历了一开始学习Android的基本知识后仍旧无从下手,不知道如何开始开发一个app,到现在也开始学会注意Android架构的 ...
- Android入门之文件系统操作
Android入门之文件系统操作(二)文件操作相关指令 (转) (一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 // ...
- ❤️【Android精进之路-01】定计划,重行动来学Android吧❤️
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. Android精进之路第一篇,确定安卓学习计划. 干货满满,建议收藏,需要用到时常看看.小伙伴们如有问题及需要,欢迎踊跃留言哦~ ~ ~. 前言 ...
- ANDROID学习之路 转
版权声明:本文为 stormzhang 原创文章,可以随意转载,但必须在明确位置注明出处!!! 这篇博客背后的故事 一路走来很不容易,刚好知乎上被人邀请回答如何自学android编程, 就借这个机会在 ...
- Android入门(十二)SQLite事务、升级数据库
原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...
随机推荐
- 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 分类: dp 2015-05-21 10:50 14人阅读 评论(0) 收藏
Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并 ...
- QT 绘制按钮 paintEvent enterEvent leaseEvent mouseEvent
案例2:绘制按钮 main.cpp #include<QApplication> #include “demoWidget.h” int main(int args , int arg ...
- 胜利大逃亡(续)(状态压缩bfs)
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- UVALive 6665 Dragonas Cruller
题目链接:https://icpcarchive.ecs.baylor.edu/external/66/6665.pdf 题目大意: 有一个3 * 3 的格子: 每个格子上面的数字能够朝上下左右四个方 ...
- 在ASP.NET项目中使用CKEditor
CKEditor是什么 CKEidtor是一个在线富文本编辑器,可以将让用户所见即所得的获得编辑在线文本,编辑器或自动将用户编辑的文字格式转换成html代码. 在ASP.NET工程中添加CKEdito ...
- ASP.NET中怎样才能使自己的代码运行的效率更高
一.网页设计相关: 1,做好页面布局和内容规划,只放置合适的内容,并尽可能使页面设计的最小. 2,使用好的网页编辑器,如DW,FP,不要用VS自带的编辑器,因为它会产生很多无用的沉余代码,而且设计的界 ...
- C# C++ Java接口类型转换
最近这几天做了一个兼职 ,主要是把C语言以及C#语言封装的dll,经过C++中转为Java语言支持的,主要其中的问题就是类型转换,在此列出常用类型的转换过程. #include "stdaf ...
- php 生成唯一的订单
/** * 生成唯一的订单号 20110809111259232312 * 2011-年日期 * 08-月份 * 09-日期 * 11-小时 * 12-分 * 59-秒 * 2323-微秒 * 12- ...
- 打造完美的go开发环境
这篇原来是给公司里使用go开发的交流用的,主要是工具的安装,用markdown写的,发布了内部gitlab上,仓促发布到blog上面,也没改啥格式,现在整理一下,然后增加一点说明 基础开发工具 sub ...
- JSONObject和JSONArray
点击下载json工具 点击下载支持jar包 1.从Object到String 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可 ( ...