《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.2节简单数据的存储——Preferences

2.2 简单数据的存储——Preferences
Android 3D游戏开发技术宝典——OpenGL ES 2.0
进行游戏开发时,有时需要持久地存储一些十分简单的数据,例如,游戏中音效的开关状态、振动效果的开关状态等。Android设计者也充分注意到了这种存储简单数据的需求,提供了一个Preferences类专门用于完成此类任务。

2.2.1 Preferences简介
Preferences使用非常方便,但功能也不是很强大,一般适合用来保存一些用户设置的参数,是一种轻量级的数据存储机制。Preferences仅可以用来存储几种简单类型的数据,如:boolean、int、float、long或者String。这些数据以键值对的形式存储在应用程序私有的Preferences目录(/data/data/应用程序包名/shared_prefs/)下的特定xml文件中,如图2-7所示。

提示 请读者注意,这个xml文件是设计为由程序自动维护的,不应该手动人工进行修改,以免影响程序的正确运行。

2.2.2 Preferences实现访问时间的记录
本小节将介绍一个使用Preferences实现的,具有记录上次访问时间功能的小案例。其具体功能为:第一次运行本案例中的程序,程序将显示“用户您好,欢迎您第一次光临本软件。”,若不是第一次运行,则显示上一次用户运行的时间,如“用户您好,您上次进入时间为:Oct 15,2011 2:38:40 AM”。程序运行的效果如图2-8、图2-9所示。

介绍完本案例的运行效果之后,接下来将对本案例的开发进行介绍。主要是本案例的主控制类Sample2_3_Activity的开发,其代码如下。

1 package com/bn/pp3;
2 import java.util.Date;       //引入相关包
3 public class Sample2_3_Activity extends Activity {   //创建Activity
4     @Override
5     public void onCreate(Bundle savedInstanceState) { //重写onCreate方法
6         super.onCreate(savedInstanceState);
7         setContentView(R.layout.main);    //跳转到主界面

8         //获取SharedPreferences引用,存储名称为bn.xml,读写模式为私有
9         SharedPreferences sp=this.getSharedPreferences("bn", Context.MODE_PRIVATE);
10         String lastLoginTime=sp.getString("time", null); //获取键为“time”的值
11         if(lastLoginTime==null) {    //若值为空,则为第一次运行本案例
12            lastLoginTime="用户您好,欢迎您第一次光临本案例。";    }
13         else{         //不为空,则修改字符串为上次运行时间
14             lastLoginTime="用户您好,您上次进入时间为:"+lastLoginTime;    }
15         SharedPreferences.Editor editor=sp.edit(); //取得编辑对象,来修改Preferences文件
16         editor.putString("time", new Date().toLocaleString());
             //修改键为“time”的值为当前时间
17         editor.commit();      //提交修改
18         TextView tv=(TextView)this.findViewById(R.id.TextView01); //获取用来显示的
                  //TextView
19         tv.setText(lastLoginTime);    //设置显示的字符串
20 }}

第9行使用getPreferences()方法来获得Preferences对象,并将存储文件命名为bn.xml,同时规定读写模式为私有。
第10-14行功能为在打开程序时,获取Preferences中存储的键为“time”的值,并判断是否为空来确定是否为第一次运行本案例,来显示不同的信息。
第15-17行功能为首先获取Preferences的编辑对象,然后对Preferences文件进行修改,设置键为“time”的值为当前的时间,最后提交。
第18-19行功能为设置界面中显示的字符串内容。

时间: 2024-11-05 14:45:53

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.2节简单数据的存储——Preferences的相关文章

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.3节手机自带数据库——SQLite

2.3 手机自带数据库--SQLiteAndroid 3D游戏开发技术宝典--OpenGL ES 2.0上一节介绍了如何使用Preferences存储简单数据,而复杂的数据就需要存储到文件或数据库中了. Android自带了一款轻量级的关系数据库--SQLite,其具有体积小,功能强大等诸多特点,成为嵌入式设备首选的数据库系统.本节将带领读者走进SQLite的世界,去学习如何应用SQLite数据库进行数据的增.删.改.查等基本操作. 2.3.1 初识SQLiteSQLite是一款满足ACID特性

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.5节Android应用程序运行的机制

1.5 Android应用程序运行的机制 Android 3D游戏开发技术宝典--OpenGL ES 2.0 上一节介绍了如何搭建Android开发环境.如何开发Hello Android应用程序以及Android应用程序的调试,接下来在本节中将简要地介绍Android应用程序的运行机制. 1.5.1 应用程序的系统架构 Android平台由应用程序.应用程序框架.Android运行时.系统库以及底层Linux内核构成,详细结构如图1-54所示. 说明 应用程序层里面包含的就是需要读者去发挥创意

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.4节Hello Android应用程序的开发

1.4 Hello Android应用程序的开发 Android 3D游戏开发技术宝典--OpenGL ES 2.0 本节首先将介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,之后将简单介绍Android应用程序的调试,为读者以后学习高级开发铺平道路. 1.4.1 第一个Android应用程序 本小节将向读者介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,基本步骤如下所列. (1)首先打开Eclipse,然后依次选择Fi

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.1节游戏中的音效

2.1 游戏中的音效 Android 3D游戏开发技术宝典--OpenGL ES 2.0 一款好游戏,除了具备优质的画面和较高的可玩性之外,还应该有出色的音效.音效一般指的是游戏中发生特定行为或进行特定操作时播放的效果音乐或为了渲染整体气氛播放的背景音,如远处隆隆的炮声.怪物死亡的惨叫声.由远而近的脚步声等. 通过开发人员精心准备的声音特效,结合游戏的场景,可以渲染出一种紧张刺激的氛围,使玩家产生身临其境的感觉.这就像电影中的声音特效一样,假如没有了合适的音效,那么游戏和电影一样,真实感会大打折

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.7节蓝牙通信

2.7 蓝牙通信 Android 3D游戏开发技术宝典--OpenGL ES 2.0 随着硬件设备价格的不断降低,大部分智能手机上都已配备了蓝牙网络模块,Android设备也是如此.如果能为一些小型的休闲娱乐游戏增加蓝牙联网对战的功能,将会大大增加游戏的可玩性.本节将向读者详细介绍如何在Android平台下开发具有蓝牙互联功能的应用程序. 2.7.1 蓝牙通信的基本知识 蓝牙是一种支持设备短距离通信(一般是10m以内)的无线技术,其数据传输时不仅不需要连线,而且传输速率也比传统手持设备的红外模式

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.2节Android平台的特点及未来的趋势

1.2 Android平台的特点及未来的趋势 Android 3D游戏开发技术宝典--OpenGL ES 2.0 Android平台基于Linux,其不仅继承了Linux的各种优良特性,同时由于"Android之父"Andy Rubin的先进理念,使得Android平台又增加了许多非常具有吸引力的新特性.这不仅给终端用户带来了非凡的体验,还大大减轻了Android应用开发者的工作量与难度. 1.2.1 全新理念带来的体验风暴 Android是具有开源性质的手机终端解决方案,开发人员可以

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.5节2D动画的开发

2.5 2D动画的开发 Android 3D游戏开发技术宝典--OpenGL ES 2.0 虽然本书是着重介绍3D的开发技术,但在大部分的3D应用中也需要有不少的2D界面,如菜单.帮助等.本节将介绍一般用于开发游戏中2D界面的SurfaceView类的使用.其继承自View类,但与View的不同之处在于,View更新画面必须是在UI线程中(也可以理解为主线程中),而SurfaceView更新画面可以在自定义线程中进行,大大方便了开发. 提示 关于Android下的多线程问题,读者可以参考笔者在人

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.6节本章小结

1.6 本章小结 Android 3D游戏开发技术宝典--OpenGL ES 2.0 本章主要分为5个部分,分别介绍了手机市场的现状.Android平台的特点及未来的趋势.如何搭建Android开发环境.如何开发Hello Android应用程序.如何调试Android应用程序以及Android应用程序的运行机制.通过阅读本章,读者应该对当下的手机产业有个大概的了解,初步掌握Android相关的环境变量配置,简单程序的开发与调试,并且对Android应用程序的运行机制有大概的了解.

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.1节智能手机市场现状

1.1 智能手机市场现状Android 3D游戏开发技术宝典--OpenGL ES 2.0手机的问世使得人们联络更加方便,同时随着手机的逐渐发展,其已经成为现代生活中不可或缺的一个组成部分.在移动互联网时代,手机也可以像PC一样安装很多的游戏.应用,就像一部随身携带的小型计算机,而且其有着PC不可比拟的移动性,这使得智能手机的销量逐渐增大. 1.1.1 五大智能手机操作系统移动互联网时代到来之前,智能手机操作系统主要有Symbian.BlackBerry.Windows Mobile.嵌入式Li