数据存储与访问.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据存储与访问.ppt》由会员分享,可在线阅读,更多相关《数据存储与访问.ppt(177页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第8章 数据存储与访问 本章学习目标:本章学习目标:n掌握掌握SharedPreferences的使用方法的使用方法n掌握各种文件存储的区别与适用情况掌握各种文件存储的区别与适用情况n了解了解SQLite数据库的特点和体系结构数据库的特点和体系结构n掌握掌握SQLite数据库的建立和操作方法数据库的建立和操作方法8.1 简单存储简单存储 n8.1.1 SharedPreferencesqSharedPreferencesSharedPreferences是一种轻量级的数据保存方式是一种轻量级的数据保存方式q通过通过SharedPreferencesSharedPreferences开发人员可以
2、将开发人员可以将NVPNVP(Name/Value PairName/Value Pair,名称,名称/值对值对)保存在)保存在AndroidAndroid的的文件系统中,而且文件系统中,而且SharedPreferencesSharedPreferences完全屏蔽了对文完全屏蔽了对文件系统的操作过程件系统的操作过程 q开发人员仅通过调用开发人员仅通过调用SharedPreferencesSharedPreferences中的函数中的函数就可就可以实现对以实现对NVPNVP的保存和读取的保存和读取 8.1 简单存储简单存储 n8.1.1 SharedPreferencesqSharedPre
3、ferencesSharedPreferences不仅能够保存数据,还能够实现不不仅能够保存数据,还能够实现不同应用程序间的数据共享同应用程序间的数据共享qSharedPreferencesSharedPreferences支持支持三种访问模式三种访问模式n私有私有(MODE_PRIVATEMODE_PRIVATE):仅创建):仅创建SharedPreferencesSharedPreferences的程的程序有权限对其进行读取或写入序有权限对其进行读取或写入n全局读全局读(MODE_WORLD_READABLEMODE_WORLD_READABLE):不仅创建程序可以对):不仅创建程序可以对
4、其进行读取或写入,其它应用程序也具有读取操作的权限,其进行读取或写入,其它应用程序也具有读取操作的权限,但没有写入操作的权限但没有写入操作的权限n全局写全局写(MODE_WORLD_WRITEABLEMODE_WORLD_WRITEABLE):所有程序都可以对其):所有程序都可以对其进行写入操作,但没有读取操作的权限进行写入操作,但没有读取操作的权限8.1 简单存储简单存储 n8.1.1 SharedPreferencesq在使用在使用SharedPreferencesSharedPreferences前,先定义前,先定义SharedPreferencesSharedPreferences的访
5、问模式的访问模式q下面的代码将访问模式定义为下面的代码将访问模式定义为私有模式私有模式 1 public static int MODE=MODE_PRIVATE;q有的时候需要将有的时候需要将SharedPreferencesSharedPreferences的访问模式设定为的访问模式设定为即可以全局读,也可以全局写,这就需要将即可以全局读,也可以全局写,这就需要将两种模式写两种模式写成下面的方式成下面的方式35 public static int MODE=Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE;8.1 简单存储简单
6、存储 n8.1.1 SharedPreferencesq除了定义除了定义SharedPreferencesSharedPreferences的访问模式,还要定义的访问模式,还要定义SharedPreferencesSharedPreferences的名称,这个名称也是的名称,这个名称也是SharedPreferencesSharedPreferences在在AndroidAndroid文件系统中保存的文件名称文件系统中保存的文件名称q一般将一般将SharedPreferencesSharedPreferences名称声明为名称声明为字符串常量字符串常量,这样,这样可以在代码中多次使用可以在代码
7、中多次使用 1 public static final String PREFERENCE_NAME=SaveSetting;q使用使用SharedPreferencesSharedPreferences时需要将访问模式和时需要将访问模式和SharedPreferencesSharedPreferences名称作为参数传递到名称作为参数传递到getSharedPreferencesgetSharedPreferences()()函数,则可获取到函数,则可获取到SharedPreferencesSharedPreferences实例实例1 SharedPreferences sharedPref
8、erences=getSharedPreferences(PREFERENCE_NAME,MODE);8.1 简单存储简单存储 n8.1.1 SharedPreferencesq在获取到在获取到SharedPreferencesSharedPreferences实例后,可以通过实例后,可以通过SharedPreferences.EditorSharedPreferences.Editor类类对对SharedPreferencesSharedPreferences进进行修改,最后调用行修改,最后调用commit()commit()函数函数保存修改内容保存修改内容qSharedPreference
9、sSharedPreferences广泛支持各种基本数据类型,包括广泛支持各种基本数据类型,包括整型、布尔型、浮点型和长型等整型、布尔型、浮点型和长型等1 SharedPreferences.Editor editor=sharedPreferences.edit();2 editor.putString(Name,Tom);3 editor.putInt(Age,20);4 editor.putFloat(Height,1.81f);5 mit();8.1 简单存储简单存储 n8.1.1 SharedPreferencesq如果需要从已经保存的如果需要从已经保存的SharedPreferen
10、cesSharedPreferences中读取数据,中读取数据,同样是调用同样是调用getSharedPreferences()getSharedPreferences()函数,并在函数第函数,并在函数第1 1个参数中指明需要访问的个参数中指明需要访问的SharedPreferencesSharedPreferences名称,最名称,最后通过后通过get()get()函数函数获取保存在获取保存在SharedPreferencesSharedPreferences中的中的NVPNVPqget()函数的第函数的第1个参数是个参数是NVP的名称的名称q第第2个参数是在无法获取到数值的时候使用的缺省值
11、个参数是在无法获取到数值的时候使用的缺省值1 SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE);2 String name=sharedPreferences.getString(Name,Default Name);3 int age=sharedPreferences.getInt(Age,20);4 float height=sharedPreferences.getFloat(Height,1.81f);8.1 简单存储简单存储 n8.1.2 示例示例q下面将通过下面将通过Sim
12、plePreferenceDemoSimplePreferenceDemo示例介绍示例介绍SharedPreferencesSharedPreferences的文件保存位置和保存格式的文件保存位置和保存格式q下图是下图是SimplePreferenceDemoSimplePreferenceDemo示例的用户界面示例的用户界面8.1 简单存储简单存储n8.1.2 示例示例q用户在界面上的输入信息,在用户在界面上的输入信息,在ActivityActivity关闭时通过关闭时通过SharedPreferencesSharedPreferences进行保存。当应用程序重新开启时,进行保存。当应用程序
13、重新开启时,再通过再通过SharedPreferencesSharedPreferences将信息读取出来,并重新呈将信息读取出来,并重新呈现在用户界面上现在用户界面上 qSimplePreferenceDemoSimplePreferenceDemo示例运行并通过示例运行并通过“回退键回退键”退出退出后,通过后,通过FileExplorerFileExplorer查看查看/data/data/data/data下的数据,下的数据,AndroidAndroid系统为每个应用程序建立了与包同名的目录,系统为每个应用程序建立了与包同名的目录,用来保存应用程序产生的数据文件,包括普通文件、用来保存应
14、用程序产生的数据文件,包括普通文件、SharedPreferencesSharedPreferences文件和数据库文件等文件和数据库文件等 qSharedPreferencesSharedPreferences产生的文件就保存在产生的文件就保存在/data/data/shared_prefs/data/data/shared_prefs目录下目录下 8.1 简单存储简单存储n8.1.2 示例示例q在本示例中,在本示例中,shared_prefsshared_prefs目录中生成了一个名为目录中生成了一个名为SaveSetting.xmlSaveSetting.xml的文件的文件q如图如图8.
15、28.2所示,保存在所示,保存在shared_prefsshared_prefs目录下目录下q这个文件就是保存这个文件就是保存SharedPreferencesSharedPreferences的文件,文件大的文件,文件大小为小为170170字节字节,在,在LinuxLinux下的权限为下的权限为“-rw-rw-rw-rw-rw-rw”8.1 简单存储简单存储n8.1.2 示例示例q在在LinuxLinux系统中,文件权限分别描述了创建者、同组用系统中,文件权限分别描述了创建者、同组用户和其它用户对文件的操作限制。户和其它用户对文件的操作限制。x x表示可执行,表示可执行,r r表示表示可读,
16、可读,w w表示可写,表示可写,d d表示目录,表示目录,-表示普通文件表示普通文件q因此,因此,“-rw-rw-rw-rw-rw-rw”表示表示SaveSetting.xmlSaveSetting.xml可以被创建可以被创建者、同组用户和其它用户进行读取和写入操作,但不可者、同组用户和其它用户进行读取和写入操作,但不可执行执行 q产生这样的文件权限与程序人员设定的产生这样的文件权限与程序人员设定的SharedPreferencesSharedPreferences的访问模式有关,的访问模式有关,“-rw-rw-rw-rw-rw-rw”的的权限是权限是“全局读全局读+全局写全局写”的结果的结果
17、q如果将如果将SharedPreferencesSharedPreferences的访问模式设置为私有,则的访问模式设置为私有,则文件权限将成为文件权限将成为“-rw-rw-rw-rw-”,表示仅有创建者和同,表示仅有创建者和同组用户具有读写文件的权限组用户具有读写文件的权限8.1 简单存储简单存储n8.1.2 示例示例qSaveSetting.xml文件是以文件是以XML格式保存的信息,内容格式保存的信息,内容如下如下1 2 3 4 Tom5 6 8.1 简单存储简单存储n8.1.2 示例示例qSimplePreferenceDemoSimplePreferenceDemo示例在示例在onS
18、tart()onStart()函数中调用函数中调用loadSharedPreferencesloadSharedPreferences()()函数函数,读取保存在,读取保存在SharedPreferencesSharedPreferences中的姓名、年中的姓名、年龄和身高信息,并显示在用户界面上龄和身高信息,并显示在用户界面上q当当ActivityActivity关闭时,在关闭时,在onStop()onStop()函数函数调用调用saveSharedPreferencessaveSharedPreferences()(),保存界面上的信息,保存界面上的信息qSimplePreferenceD
19、emoActivity.javaSimplePreferenceDemoActivity.java的完整代码如下的完整代码如下1 package edu.hrbeu.SimplePreferenceDemo;23 import android.app.Activity;4 import android.content.Context;5 import android.content.SharedPreferences;6 import android.os.Bundle;8.1 简单存储简单存储n8.1.2 示例示例7 import android.widget.EditText;89 pub
20、lic class SimplePreferenceDemoActivity extends Activity 1011 private EditText nameText;12 private EditText ageText;13 private EditText heightText;14 public static final String PREFERENCE_NAME=SaveSetting;15 public static int MODE=Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE;1617 Override
21、18 public void onCreate(Bundle savedInstanceState)19 super.onCreate(savedInstanceState);20 setContentView(R.layout.main);21 nameText=(EditText)findViewById(R.id.name);8.1 简单存储简单存储n8.1.2 示例示例22 ageText=(EditText)findViewById(R.id.age);23 heightText=(EditText)findViewById(R.id.height);24 2526 Override
22、27 public void onStart()28 super.onStart();29 loadSharedPreferences();30 31 Override32 public void onStop()33 super.onStop();34 saveSharedPreferences();35 368.1 简单存储简单存储n8.1.2 示例示例37 private void loadSharedPreferences()38 SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE)
23、;39 String name=sharedPreferences.getString(Name,Tom);40 int age=sharedPreferences.getInt(Age,20);41 float height=sharedPreferences.getFloat(Height,1.81f);4243 nameText.setText(name);44 ageText.setText(String.valueOf(age);45 heightText.setText(String.valueOf(height);46 4748 private void saveSharedPr
24、eferences()49 SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE);50 SharedPreferences.Editor editor=sharedPreferences.edit();8.1 简单存储简单存储n8.1.2 示例示例5152 editor.putString(Name,nameText.getText().toString();53 editor.putInt(Age,Integer.parseInt(ageText.getText().toString();
25、54 editor.putFloat(Height,Float.parseFloat(heightText.getText().toString();55 mit();56 57 n首先下载附件adb_win.zip,解压获得文件。将所有文件复制粘贴到电脑C盘/Windows/system32里面。n在命令符终端输入 adb shell,即可连接。n连接成功以后,你输入任何shell脚本命令都将是在手机系统中执行。调试中遇到问题:使用调试中遇到问题:使用cmd-adb shell时,显示错误为时,显示错误为adb不是内部命令或外部命令,也不是可运行的程序或批处理文不是内部命令或外部命令,也不是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 存储 访问
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内