Android应用开发基础篇(9)-----SharedPreferences
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/27/2370319.html
一、概述
对于SharedPreferences,我吧它理解为一种简单的数据库,它可以把数据像文件一样存放在系统里面,也可以读出来,但它存放的只是一些简单的数值对,如key-values的形式。如果某些应用需要在退出时保存一些简单的数据以便再次被打开时恢复所需的数据,那么就可以用SharedPreferences来实现。
二、要求
编写一个简单的应用,要求该应用退出时能保存某些所需要的数据,当应用再次打开时恢复这些数据。
三、实现
新建工程MyShared,修改/res/layout/main.xml文件,在里面添加一个EditText,两个Button和一个TextView,完整的main.xml文件如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 android:orientation="vertical" >
6
7 <EditText
8 android:id="@+id/edittext"
9 android:layout_width="fill_parent"
10 android:layout_height="wrap_content"
11 android:hint="请输入内容"
12 />
13
14 <Button
15 android:id="@+id/wbutton"
16 android:layout_width="fill_parent"
17 android:layout_height="wrap_content"
18 android:text="写入"
19 />
20
21 <Button
22 android:id="@+id/rbutton"
23 android:layout_width="fill_parent"
24 android:layout_height="wrap_content"
25 android:text="读取"
26 />
27
28 <TextView
29 android:id="@+id/textview"
30 android:layout_width="fill_parent"
31 android:layout_height="wrap_content"
32 android:gravity="center_horizontal"
33 android:textSize="20dip"
34 />
35
36 </LinearLayout>

接着,修改MySharedActivity.java文件,主要定义了一个SharedPreferences对象和一个SharedPreferences.Editor对象,实现两个按钮的监听,完整的MySharedActivity.java文件如下:

1 package com.nan.shared;
2
3 import android.app.Activity;
4 import android.content.SharedPreferences;
5 import android.os.Bundle;
6 import android.view.View;
7 import android.widget.Button;
8 import android.widget.EditText;
9 import android.widget.TextView;
10 import android.widget.Toast;
11
12 public class MySharedActivity extends Activity
13 {
14 private EditText mEditText = null;
15 private Button writeButton = null;
16 private Button readButton = null;
17 private TextView mTextView = null;
18
19 private SharedPreferences mSharedPreferences = null;
20 private SharedPreferences.Editor mEditor = null;
21
22 /** Called when the activity is first created. */
23 @Override
24 public void onCreate(Bundle savedInstanceState)
25 {
26 super.onCreate(savedInstanceState);
27 setContentView(R.layout.main);
28
29 mEditText = (EditText)this.findViewById(R.id.edittext);
30 writeButton = (Button)this.findViewById(R.id.wbutton);
31 readButton = (Button)this.findViewById(R.id.rbutton);
32 mTextView = (TextView)this.findViewById(R.id.textview);
33
34 mSharedPreferences = getSharedPreferences("myshare",MODE_PRIVATE);
35 mEditor = mSharedPreferences.edit();
36
37 writeButton.setOnClickListener(new View.OnClickListener()
38 {
39
40 @Override
41 public void onClick(View v)
42 {
43 // TODO Auto-generated method stub
44 //获得EditText的内容
45 String text = mEditText.getText().toString();
46 //修改
47 mEditor.putString("hehe", text);
48 //提交修改
49 mEditor.commit();
50 displayToast("写入成功!");
51 }
52 });
53
54 readButton.setOnClickListener(new View.OnClickListener()
55 {
56
57 @Override
58 public void onClick(View v)
59 {
60 // TODO Auto-generated method stub
61 //获取所保存的数据
62 String text = mSharedPreferences.getString("hehe", null);
63 //把数据显示出来
64 mTextView.setText(text);
65 }
66 });
67
68 }
69 //显示Toast函数
70 private void displayToast(String s)
71 {
72 Toast.makeText(MySharedActivity.this, s, Toast.LENGTH_SHORT).show();
73 }
74
75 }

好了,运行它,如下:

接着输入一行数字,然后点击“写入”,如下:

退出应用,重新运行它并点击“读取”按钮,效果如下:

可以看到之前保存的数据被显示出来了。
OK,完成。
Android应用开发基础篇(9)-----SharedPreferences的更多相关文章
- Android应用开发基础篇(1)-----Button
Android应用开发基础篇(1)-----Button 一.概述 Button,顾名思义就是按钮的意思,它主要的功能是响应用户按下按钮时的动作. 二.应用 新建一个工程, ...
- Android应用开发基础篇(3)-----ListView
一.概述 ListView是一个列表显示控件,它的应用非常广泛,在很多应用程序中都可以看到它的身影,比如来电通,网易新闻等等,特别是QQ.因此非常有必要熟练掌握它. 二.要求 能够利用ListView ...
- Android应用开发基础篇(4)-----TabHost(选项卡)
一.概述 TabHost是一种用来显示标签的组件,不清楚?看一下来电通这个应用就知道了.这个组件用起来与其他组件不太一样,它需要继承TabActivity这个类,还有它的布局文件与我们平时用的也有些不 ...
- Android应用开发基础篇(12)-----Socket通信
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/03/2378669.html 一.概述 网络通信无论在手机还是其他设备上都应用得非常广泛,因此掌 ...
- Android应用开发基础篇(12)-----Socket通信(转载)
转自:http://www.devdiv.com/android_socket_-blog-258060-10594.html 一.概述 网络通信无论在手机还是其他设备上都应用得非常广泛,因此掌握网络 ...
- Android应用开发基础篇(14)-----自定义标题栏
一.概述 每一个应用程序默认的标题栏(注意与状态栏的区别)只有一行文字(新建工程时的名字),而且颜色.大小等都是固定的,给人的感觉比较单调.但当程序需要美化的时候,那么修改标题栏是就是其中一项内容,虽 ...
- Android应用开发基础篇(2)-----Notification(状态栏通知)
一.概述 Notification这个部件的功能是在状态栏里显示消息提醒,比如有未读的短信或者是未接的电话,那么状态栏里都会有显示,更或者是从某个应用(比如QQ,酷我音乐等等)里按Home键 ...
- Android应用开发基础篇(16)-----ScaleGestureDetector(缩放手势检测)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/11/2390274.html 一.概述 ScaleGestureDetector这个类是专门用来 ...
- Android应用开发基础篇(15)-----URL(获取指定网址里的图片)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/10/2389190.html 一.概述 URL,说白了就是一个网络地址(网址),通常一个网址里包 ...
随机推荐
- 一款C++静态分析工具 —— CppDepend
Wrote by mutouyun. (http://darkc.at/cppdepend/) 去年6月份的时候,CppDepend的一位技术社区经理(technical community mana ...
- 清风注解-Swift程序设计语言:Point11~15
目录索引 清风注解-Swift程序设计语言 Point 11. 数值型字面量 代码事例: let decimalInteger = // 十进制的17 let binaryInteger = 0b10 ...
- SQL练习之两个列值的交换
SELECT * FROM dbo.test2
- pl sql项目演练--B2C商城项目
项目学习视频下载地址:点击下载 1.注册会员及找回密码模块 }该模块主要功能有注册会员和找回密码 }注册会员:所需信息主要有:登录号.密码.真实姓名.性别.密码问题.密码答案.Email.地址.电 ...
- 微信支付java版V3验证数据合法性
[TOC] 1. 微信支付java版V3验证数据合法性 概要:使用微信支付接口时,微信会返回或回调给商户XML数据,开发者需要验证微信返回的数据是否合法. 特别提醒:商户系统对于支付结果通知的内容一定 ...
- WinSock网络编程基础(1)
记录学习windows网络编程过程中遇到的问题和相关笔记 基本概念: Socket: socket起源于UNIX,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.基于&qu ...
- Problem F: Exponentiation大数求幂
DescriptionProblems involving the computation of exact values of very large magnitude and precision ...
- [C#参考]主线程和子线程之间的参数传递
几个进程在大多数情况下要包含很多的子线程,那么他们之间免不了的要互相传递很多的参数,那么参数怎么传递的呢? 主线程向子线程传递参数的方法 第一种方法:Thraed类有一个带参数的委托类型的重载形式,这 ...
- mybaitis配置信息
在配置mybatis当中,jdbcType的名称要大写,时间类型DATE只能传入年月日,要想传入时分秒,应该使用TIMESTAMP http://www.blogjava.net/hello-yun/ ...
- C++小知识之Map用法
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作! 1. map最基本的构造函数: map<st ...