Android开发学习---sharedpreference的使用
在前面文章中,为了使数据回显,使用的技术思路是,首先,将数据持久化写到ROM或者SDCard中,其中name和password以":"分隔;然后,将数据记取出来,再用split方法将数据切割,分割后的数据再set到输入框中.整个过程可谓是相当麻烦,一不小心就会报空指针的错误,而且很容易忘记写参数.下面将学习一个叫SharedPreference东西.SharedPreference主要用来保存参数.
1.效果:



2.实现代码
package com.amos.sharedpreference; import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText; public class MainActivity extends Activity implements OnClickListener {
String tag = "MainActivity";
EditText et_name;// 用户名
EditText et_password;// 密码
Button bt_login;// 登录按钮
CheckBox cb_password;// 单选框 // 用来保存参数的接口
SharedPreferences sharedPreference; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化
et_name = (EditText) this.findViewById(R.id.et_name);
et_password = (EditText) this.findViewById(R.id.et_password);
bt_login = (Button) this.findViewById(R.id.bt_login);
cb_password = (CheckBox) this.findViewById(R.id.cb_password); // 初始化参数配置
sharedPreference=this.getSharedPreferences("spconfig", MODE_PRIVATE);
if(sharedPreference.getBoolean("issetup", false)){
et_name.setText(sharedPreference.getString("name", ""));
et_password.setText(sharedPreference.getString("password", ""));
} // 注册监听事件
bt_login.setOnClickListener(this); } @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_login:
String name = et_name.getText().toString().trim();
String password = et_password.getText().toString().trim();
System.out.println("name:"+name);
System.out.println("password:"+password);
// 定义用来保存参数的接口
Editor edit = sharedPreference.edit();
edit.putString("name", name);
edit.putString("password", password);
edit.putBoolean("issetup", true);
//清空编辑器
//edit.clear(); // 当有两个编辑器(Editor)进行编辑同一个sharedPreference时,最后一个提交的将会生效
edit.commit(); default:
break;
} } }
sharedpreference的使用是相当方便,这里同样会将用户名密码保存下来,但这里不同点在于,通过sharedPreference会生成规整的xml的文件,这里主要用到的是Edit类中的方法去put值到相应的位置.一般情况下其它配置也是会保存到sharedPreference中,如setting:

3.补充
1).使用openFileInput('...')读取数据.
前面文章中将密码写到rom文件中主要采用的是openFileOutput('XXX/xxx').
这里同样可以类似的通过openFileInput('xx/xxx')进行读取文件.比较简单,这里不再举例.
2).使用命令生成sdcard
t-bundle-linux-x86_64-/sdk/tools$ ./mksdcard
mksdcard: create a blank FAT32 image to be used with the Android emulator
usage: mksdcard [-l label] <size> <file> if <size> is a simple integer, it specifies a size in bytes
if <size> is an integer followed by 'K', it specifies a size in KiB
if <size> is an integer followed by 'M', it specifies a size in MiB
if <size> is an integer followed by 'G', it specifies a size in GiB Minimum size is 9M. The Android emulator cannot use smaller images.
Maximum size is bytes, 1073741823K, 1048575M or 1023G
amosli@amosli-pc:/media/f91a4cca-0b96-4c30-b140-7918a196de3e/amosli/java/soft/adt-bundle-linux-x86_64-/sdk/tools$
3).更新ADT(android development tools )
方法一:将 https://dl-ssl.google.com/android/eclipse/ 链接加入到, Help > Install New Software > add url
方法二:直接下载zip包ADT-22.6.3.zip (https://dl.google.com/android/ADT-22.6.3.zip),不用解压.步骤与add url类似,官方介绍如下.
- Download the ADT Plugin zip file (do not unpack it):
Package Size MD5 Checksum ADT-22.6.3.zip 14590813 bytes 3982259fd2cc81e53bbbe05dcd6529a7 - Start Eclipse, then select Help > Install New Software.
- Click Add, in the top-right corner.
- In the Add Repository dialog, click Archive.
- Select the downloaded ADT-22.6.3.zip file and click OK.
- Enter "ADT Plugin" for the name and click OK.
- In the Available Software dialog, select the checkbox next to Developer Tools and click Next.
- In the next window, you'll see a list of the tools to be downloaded. Click Next.
- Read and accept the license agreements, then click Finish.
也可以直接从百度网盘中下载(推荐):http://pan.baidu.com/s/1i3rAc2D
Android开发学习---sharedpreference的使用的更多相关文章
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- Android开发学习路线图
Android开发学习方法: Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大.因此,一个好的学习方法对我们学习Android开发很重要. 在此建议, ...
- android开发学习笔记000
使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...
- Android开发学习总结(一)——搭建最新版本的Android开发环境
Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...
- Android开发学习之LauncherActivity开发启动的列表
Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果: 建立主Activity:OtherActivity.java [jav ...
- 最实用的Android开发学习路线分享
Android开发学习路线分享.Android发展主导移动互联发展进程,在热门行业来说,Android开发堪称火爆,但是,虽然Android有着自身种种优势,但对开发者的专业性要求也是极高,这种要求随 ...
- Android开发学习必备的java知识
Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语 ...
- Android开发学习之路--基于vitamio的视频播放器(二)
终于把该忙的事情都忙得差不多了,接下来又可以开始good good study,day day up了.在Android开发学习之路–基于vitamio的视频播放器(一)中,主要讲了播放器的界面的 ...
- Android开发学习之路--Android Studio cmake编译ffmpeg
最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...
随机推荐
- hrbrid需要做的
1 返回并刷新 A webveiw push 到 B webview.当由B返回到A时候, A需要刷新页面.
- LR12.53—使用HP网络导游示例应用程序
本教程使用 的HP Web之旅,一个样本的基于Web的旅行社系统,向人们展示LoadRunner将如何作为负载测试解决方案.惠普网络旅游用户连接到Web服务器,搜索航班,预订机票,检查飞行路线. 虽然 ...
- Upload files to aliyunOSS with bootstrap-fileinput
本文主要涉及两个概念: 阿里云OSS:对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量.安全和高可靠的云存储服务. bootstrap-fileinput: ...
- 关于Delphi中多线程传递参数的简单问题
http://bbs.csdn.net/topics/390513469/ unit uThread; interface uses Classes; type Th = class(TThread) ...
- 用VBS实现公司自动打卡
公司每天要求早晚打卡,方式是登录某一个页面,然后点击上面的圈圈,如下图: 每天都要打开书签,登录这个页面,然后打卡...这么重复性的工作,怎么能是程序员天天干的事情呢(其实是我太懒了),那么就尝试让程 ...
- arcgis将图片转成shp地图
打开arcMap 1.右键[图层]-[属性]-[坐标系]-[地理坐标系]-双击"WGS 1984" 2.右键[图层]-[添加数据],打开图片文件-Band_2 3.右键图片-[属性 ...
- ppt 数组课后作业
任务要求:随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路:建一个数组,在for语句中将随机数存入数组中,然后每生成一个数就进行相加, ...
- Myeclispe 安装 SVN :
Myeclispe 安装 SVN :解压 : site-1.8.22.zip 放入如下路径下即可 :
- curl php 小记
/* 开发用到. */ https 需加入: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
- 初尝 JFinal 项目(二)
这里以Roles角色表修改功能做一个例子 RolesController /** * 角色管理控制类 * @author 御手洗红豆 */public class RolesController ex ...