- 浏览: 126621 次
文章分类
最新评论
-
qzwlf:
Android(四)数据存储之五网络 -
jiaoshiyao:
...
http响应头介绍 -
cherishlive:
请问Standard MBean如何支持复杂类型,可否大概的讲 ...
JMX MBeans之三Open MBean -
nihongye:
...
JMX MBeans之三Open MBean -
discolt:
报错
javax.management.MBeanExcep ...
JMX MBeans之四Model MBean (1)
在此之前的学习内容是数据存储之一文件存储。在本地存储中常用的有,文件、配置文件、数据库。前面的学习主要是针对本地文件的。我认为可以把SharedPreferences看做是配置文件,虽然它也是采用XML格式存储的。
比如我们使用的桌面软件中,通常会有一个“选项”菜单,选项是对软件的常规或核心设置。在Android中我们使用SharedPreferences来完成这种对配置文件的读写。在JavaSE和JavaEE中常用的是*.properties,在Windows平台下常使用*.ini文件。
下面,我们编写一个使用SharedPreferences读写配置文件的小例子。
1.创建Android工程
Project name:AndroidSharedPreferences
BuildTarget:Android2.1
Application name:Android 应用程序配置
Package name:com.changcheng.sharedpreferences
Create Activity:AndroidSharedPreferences
Min SDK Version:7
2.编辑strings.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, AndroidSharedPreferences!</string> <string name="app_name">Android 应用程序配置</string> <string name="tv_name">姓名</string> <string name="tv_age">年龄</string> <string name="bt_write">设置</string> <string name="bt_read">读取</string> <string name="save_success">保存成功</string> <string name="save_failed">保存失败</string> </resources> |
3.编辑main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <!-- 姓名 --> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="70dip" android:layout_height="wrap_content" android:textSize="25dip" android:id="@+id/tv_name" android:text="@string/tv_name" /> <EditText android:layout_width="300dip" android:layout_height="wrap_content" android:layout_toRightOf="@id/tv_name" android:id="@+id/et_name" /> </RelativeLayout> <!-- 年龄 --> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="70dip" android:layout_height="wrap_content" android:textSize="25dip" android:id="@+id/tv_age" android:text="@string/tv_age" /> <EditText android:layout_width="300dip" android:layout_height="wrap_content" android:layout_toRightOf="@id/tv_age" android:id="@+id/et_age" /> </RelativeLayout> <!-- 按钮 --> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bt_write" android:id="@+id/bt_set" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/bt_set" android:text="@string/bt_read" android:id="@+id/et_read" /> </RelativeLayout> </LinearLayout> |
4.为按钮添加事件代码
package com.changcheng.sharedpreferences;
import android.app.Activity; import android.content.Context; 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.EditText; import android.widget.Toast;
public class AndroidSharedPreferences extends Activity {
private static final String TAG = "AndroidSharedPreferences"; private EditText etName; private EditText etAge;
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获取按钮 Button btSet = (Button) this.findViewById(R.id.bt_set); Button btRead = (Button) this.findViewById(R.id.bt_read); // 获取编辑框 etName = (EditText) this.findViewById(R.id.et_name); etAge = (EditText) this.findViewById(R.id.et_age); // 添加事件 btSet.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 获取名称和年龄 String name = etName.getText().toString(); String age = etAge.getText().toString(); // 创建SharedPreferences SharedPreferences sp = getSharedPreferences("preferences", Context.MODE_PRIVATE); // 添加数据 Editor editor = sp.edit(); editor.putString("name", name); editor.putInt("age", Integer.parseInt(age)); // 保存数据 if (editor.commit()) Toast.makeText(AndroidSharedPreferences.this, R.string.save_success, 1).show(); else Toast.makeText(AndroidSharedPreferences.this, R.string.save_failed, 1).show(); } }); btRead.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 创建SharedPreferences SharedPreferences sp = getSharedPreferences("preferences", Context.MODE_PRIVATE); // 获取数据 String name = sp.getString("name", "defName"); String age = sp.getInt("age", 0) + ""; // 显示数据 etName.setText(name); etAge.setText(age); } }); } } |
5.运行程序
启动模拟器,运行程序。输入名称和年龄,点击保存。我们使用的代码是getSharedPreferences("preferences",Context.MODE_PRIVATE);,当然commit时。它会为我们为”/data/data/com.changcheng.sharedpreferences/shared_prefs/preferences.xml”。将 preferences.xml导出,查看它的内容为:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="name">长城</string> <int name="age" value="25" /> </map> |
将名称和年龄编辑框的内容清空,然后点击读取按钮,刚才写出的内容被读取进来。 SharedPreferences的使用就是这么简单。
6.其他程序访问本程序的配置
通过SharedPreferences创建的配置文件,不需要指定路径和文件后缀名,读取的时候也是。通常情况下,配置只是提供给本应用程序使用的。在这里我们介绍一个小知识点,即其他程序想使用本应用程序的配置,那应该如何使用SharedPreferences呢?如下:
Context otherAppContext = createPackageContext("com.changcheng.sharedpreferences", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppContext.getSharedPreferences("preferences", Context.MODE_WORLD_READABLE);
注意,为了使其他程序可以访问本应用程序的配置。那么在我们使用 getSharedPreferences创建配置的时候必须为它的文件访问模式设置为允许其他程序读取或写入等。
发表评论
-
android博客
2010-10-11 10:23 834http://www.getideas.cn/?cat=4 -
在android的程序里面使用ROOT权限
2010-10-09 16:11 462/*** * 获取超级用户权限 ... -
Android经典教程
2010-10-09 15:52 24181、传智播客——Android开发(一)Android搭建、H ... -
Android(五)数据存储之五网络数据交互 3
2010-10-09 15:51 1436其中使用到的HttpRequester类: packa ... -
Android(五)数据存储之五网络数据交互 2
2010-10-09 15:50 14723.ClientService类 package c ... -
Android(五)数据存储之五网络数据交互 1
2010-10-09 15:49 2219昨天我们只对Android接收网络数据进行了简单介绍,今天我们 ... -
Android(四)数据存储之五网络
2010-10-09 15:48 1373既然是3G开发,网络重要性自然不必多说!Android的网 ... -
Android(四)数据存储之四ContentProvider 2
2010-10-09 15:47 9813.测试SQLite示例程序的ContentProvider ... -
Android(四)数据存储之四ContentProvider
2010-10-09 15:44 1247早上我们简要的对SQLite进行回顾,然后将SQLite的事务 ... -
Android(三)数据存储之三SQLite嵌入式数据库 3
2010-10-09 15:43 1508在mail.xml所在目录里添加一个contactitem.x ... -
Android(三)数据存储之三SQLite嵌入式数据库 2
2010-10-09 15:42 18814.编写ContactsService类 Co ... -
Android(三)数据存储之三SQLite嵌入式数据库 1
2010-10-09 15:40 1605前两篇日志我已经总结 ... -
Android(三)数据存储之XML解析技术 2
2010-10-09 15:38 1559二、Pull解析技术 Pull解析技术与Sax ... -
Android(三)数据存储之XML解析技术 1
2010-10-09 15:36 1462今日继续学习Android中使用Pull的XML解析技术实现对 ... -
Android(二)数据存储和访问 之文件 1
2010-10-09 15:35 1140package com.changcheng.file. ... -
Android(二)数据存储和访问 之文件 1
2010-10-09 15:32 1237今日重点内容是Adnroid的数据存储和访问。Android的 ... -
Android开发(一)发送短信程序
2010-10-09 15:31 1081一、创建 Android工程 Project name:Se ... -
Android开发(一)拨打电话程序
2010-10-09 15:30 1650一、创建 Android工程 Project name:Ca ... -
Android开发(一)Android搭建、HelloWorld
2010-10-09 15:29 1300万众瞩目,Android终于开课了。本课程有黎活明老师主讲,讲 ... -
Android开发如何利用Google map
2010-10-09 09:47 3864自google 06年进入中国,在地图、移动领域的发展速度基本 ...
相关推荐
Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储),如项目包有问题请联系我谢谢
Android数据存储之SharedPreferences,自己根据文档编写的代码,有需要的就下载吧。
Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、SharedPreference 存储 3、数据库存储。SharedPreferences 是使用键值对的方式来存储数据的,使用 SharedPreferences来进行数据...
Jetpack DataStore 是一种改进的新数据存储解决方案,允许使用协议缓冲区存储键值对或类型化对 象。 DataStore 以异步、一致的事务方式存储数据,克服了 SharedPreferences(以下统称为SP)的 一些缺点。 DataStore ...
嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 2 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...
程序代码 博文链接:https://prettyboy434.iteye.com/blog/724088
Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...
Android数据存储——SharedPreferences实现登入记住密码功能。
前面呢,我们讲了文件的存储,文件的存储方式不适合保存一些比较复杂的文本数据。因此,我们来学习一下...SharedPreferences支持不同类型的数据存储,如果你存储的是整型,那你读取出来的也是整型,你存储的是浮点型,
使用SharedPreferences的小项目。
Sharedpreferences存储数据的使用方法_完整Demo_AndroidStudio http://blog.csdn.net/iwanghang
Android自学笔记-8-Android数据存储1:文件、SharedPreferences和获取sd卡信息
Android使用SharedPreferences进行数据存储,缓存ID等数据
Android本地存储SharedPreferences详解 存储位置 SharedPreferences数据保存在: /data /data/<package> /shared_prefs 文件夹下,以XML格式保存,根元素为:。文件名称为获取SharedPreferences实例时传递的參数值。...
Android使用SharedPreferences和SQLite数据库实现数据存储
android 使用SharedPreferences对数据存储/删除/读取/文件删除
嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 1 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...
通过三个Activity模拟SharedPreferences存储。fristActivity用于存储SharedPreferences数据,secondActivity删除SharedPreferences,moreactivtiy用于判断SharedPreferences是否删除,如果删除跳转到secondActivity...
3、数据存储与访问 主要介绍存储文件到外部存储器和内部存储器,利用系统提供的API获取路径时,需要精准的掌握他们的目录层级。在将数据保存到SDCard时,需要判断剩余存储空间。 SharedPreferences存储对于简单的...
Android五大存储之一SharedPreferences判断第一次运行。通过键值对来存储相应的用户的设置及其状态。