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,说白了就是一个网络地址(网址),通常一个网址里包 ...
随机推荐
- 运行预构建 Linux 映像的 Windows Azure 虚拟机中的交换空间 – 第 1 部分
本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 随着基础结构服务(虚拟机和虚拟网络)近期在 Windows Azure 上正式发布,越来越多的企业工作负荷正在向 ...
- 如何阅读mysql源码
在微博上问mysql高手,如何阅读mysql 源码大致给了下面的一些建议: step 1,知道代码的组织结构(官方文档http://t.cn/z8LoLgh: Step2: 尝试大致了解一条sql涉及 ...
- POJ 1077 HDU 1043 Eight (IDA*)
题意就不用再说明了吧......如此经典 之前想用双向广搜.a*来写,但总觉得无力,现在用IDA*感觉其他的解法都弱爆了..............想法活跃,时间,空间消耗很小,给它跪了 启发式搜索关 ...
- android中退出当前应用程序的四种方法
android中退出当前应用程序的四种方法 [IT168 技术]Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A.在B中如何 ...
- Android EditeText常用功能盘点
这篇集合了项目里经常用到的EditText的需求,以前单个问题总结过,现在放在一起以备后患啊,主要包含以下方面: 1. 判断输入字符长度 2. 键盘的显示与隐藏 3. 对输入内容的限制,列举几种常见的 ...
- matlab GUI之常用对话框(三)-- dialog \ errordlg \ warndlg \ helpdlg \ msgbox \questdlg
常用的对话框(三) 1.普通对话框 dialog 调用格式: h=dialog('PropertyName','PropertyValue'......) %普通对话框 h=dialog( ]); ...
- C# 实现磁性窗体
可以实现窗体的 吸附 移动 分离 using System; using System.Drawing; using System.Collections.Generic; using Sys ...
- qt学习:信号,槽
[C.GUI.Qt.4编程(第二版)](加)布兰切特,(英)萨默菲尔德.扫描版[学习库www.xuexi111.com].pdf 信号和槽是Qt编程的基础,它可以让各种对象联系在一起. 1. 使用co ...
- math。h中的log函数的应用
以10为底的log函数: 形式为 double log10(double x) 以e为底的log函数(即 ln)double log (double x) 如何表达log 以a为底b的对数: 用换 ...
- html5 input的type属性启动数字输入法
html5 input的type属性启动数字输入法 当文本框只能输入数字是一个很常见的需求,比如电话号码,身份证号,卡号, 数量....等等只允许数字输入,为了更好的用户体验性,直接写出 启动数字 ...