- 浏览: 30789 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
JavaJ2me:
请问还知道别的方法,开启移动网络吗??
Android APN设置 -
Ancool:
pdf没研究,有空我看看,代码肯定是需要自己写的,除非别人已经 ...
Android打开文件 -
Ancool:
littlenewus 写道帅哥 如果打开一个html或者p ...
Android打开文件 -
littlenewus:
帅哥 如果打开一个html或者pdf type应该写什么?
Android打开文件
在此之前的学习内容是数据存储之一文件存储。在本地存储中常用的有,文件、配置文件、数据库。前面的学习主要是针对本地文件的。我认为可以把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 中 Proguard 和 JNI 的相关问题
2012-03-27 12:26 914在Android项目中用到JNI,当用了proguard后,发 ... -
Android中隐藏标题栏和状态栏
2011-03-21 14:57 1412一、隐藏标题栏 //隐藏标题栏 this.re ... -
Android APN设置
2011-01-23 21:41 1454由于Android对于APN的网络API没有公开,不过我们可以 ... -
Android原生(Native)C开发之五:zlib移植笔记
2011-01-23 20:53 1043zlib(http://www.zlib.net/)是一 ... -
Android原生(Native)C开发之四:SDL移植笔记
2011-01-23 20:48 1692SDL(Simple DirectMedia Layer ... -
Android原生(Native)C开发之三:鼠标事件篇(捕鼠记)
2011-01-23 20:41 950在做SDL至Android的移植时,键盘事件是能正常捕获到,看 ... -
Android原生(Native)C开发之二:framebuffer篇
2011-01-23 20:16 987虽然现在能通过交叉环境编译程序,并push到Android ... -
Android原生(Native)C开发之一:环境搭建篇
2011-01-23 20:12 1067Android是基于Linux的操作系统,处理器是ARM的,所 ... -
Android隐藏程序及调用
2011-01-23 14:52 1400新建一个activity,编辑AndroidMani ... -
Ubuntu下使用Android ADB
2011-01-23 14:37 1585android本身就有linux下的SDK包。 所以就方 ... -
Android各种调用
2011-01-23 13:33 8911,web 浏览器 Jav ... -
Android Intent and Intent-filter SDK file
2011-01-23 13:03 1268Android Intent and Intent-filte ... -
使用Android系统隐藏api读取*.apk程序安装包信息
2011-01-23 11:42 1137前提:我们需要得到 Android 系统源码编 ... -
Android获取手机型号和系统版本号
2011-01-18 17:19 1237手机型号和版本号获取方法: public void onC ... -
Android打开文件
2011-01-14 13:26 2681/* 在手机上打开文件的method */ p ... -
Android数据存储之三SQLite嵌入式数据库(2)
2011-01-14 10:53 11395. 编写测试类 ... -
Android数据存储之三SQLite嵌入式数据库(1)
2011-01-14 10:51 902一、 SQLite 简介 ... -
Android小东东收集
2011-01-14 10:06 954//设置ListView中item第一个的上面和下面两条分隔线 ...
相关推荐
Android数据存储之SharedPreferences,自己根据文档编写的代码,有需要的就下载吧。
程序代码 博文链接:https://prettyboy434.iteye.com/blog/724088
Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储),如项目包有问题请联系我谢谢
Jetpack DataStore 是一种改进的新数据存储解决方案,允许使用协议缓冲区存储键值对或类型化对 象。 DataStore 以异步、一致的事务方式存储数据,克服了 SharedPreferences(以下统称为SP)的 一些缺点。 DataStore ...
Android数据存储——SharedPreferences实现登入记住密码功能。
Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、SharedPreference 存储 3、数据库存储。SharedPreferences 是使用键值对的方式来存储数据的,使用 SharedPreferences来进行数据...
使用SharedPreferences的小项目。
Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...
前面呢,我们讲了文件的存储,文件的存储方式不适合保存一些比较复杂的文本数据。因此,我们来学习一下...SharedPreferences支持不同类型的数据存储,如果你存储的是整型,那你读取出来的也是整型,你存储的是浮点型,
嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 2 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...
本人博客:Android存储---SharedPreferences的介绍与使用demo
Android本地存储SharedPreferences详解 存储位置 SharedPreferences数据保存在: /data /data/<package> /shared_prefs 文件夹下,以XML格式保存,根元素为:。文件名称为获取SharedPreferences实例时传递的參数值。...
Android使用SharedPreferences进行数据存储,缓存ID等数据
Android自学笔记-8-Android数据存储1:文件、SharedPreferences和获取sd卡信息
layout9为SharedPreferences数据存储和读取功能应该的一个关于记住密码功能实例。 layout11为SharedPreferences的数据存储和读取实例。
1.掌握SharedPreferences的使用方法; 2.掌握各种文件存储的区别与适用情况; 3.了解SQLite数据库的特点和体系结构; 4.掌握SQLite数据库的建立和操作方法; 5.理解ContentProvider的用途和原理; 6.掌握...
Android使用SharedPreferences和SQLite数据库实现数据存储
android 使用SharedPreferences对数据存储/删除/读取/文件删除
Android Studio编写的Android存储示例。其中包括:使用自带的SharedPreferences存取;存储数据到内存;存储数据到SD卡;存储数据到SQLite数据库。
Sharedpreferences存储数据的使用方法_完整Demo_AndroidStudio http://blog.csdn.net/iwanghang