博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.2节简单数据的存储——Preferences...
阅读量:7044 次
发布时间:2019-06-28

本文共 2229 字,大约阅读时间需要 7 分钟。

本节书摘来自异步社区《Android 3D游戏开发技术宝典——OpenGL ES 2.0》一书中的第2章,第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所示。

4d6f0f1e395ed3516ec6aba4b7458aa39cae959d

提示 请读者注意,这个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 {   //创建Activity4     @Override5     public void onCreate(Bundle savedInstanceState) { //重写onCreate方法6         super.onCreate(savedInstanceState);7         setContentView(R.layout.main);    //跳转到主界面

1f556bb8629a36722409796929813f292b0cdcce
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); //获取用来显示的                    //TextView19         tv.setText(lastLoginTime);    //设置显示的字符串20 }}

第9行使用getPreferences()方法来获得Preferences对象,并将存储文件命名为bn.xml,同时规定读写模式为私有。

第10-14行功能为在打开程序时,获取Preferences中存储的键为“time”的值,并判断是否为空来确定是否为第一次运行本案例,来显示不同的信息。
第15-17行功能为首先获取Preferences的编辑对象,然后对Preferences文件进行修改,设置键为“time”的值为当前的时间,最后提交。
第18-19行功能为设置界面中显示的字符串内容。

转载地址:http://mieal.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
Shell脚本之测试及条件表达式简述
查看>>
JavaScript函数详解(二)
查看>>
X9BYOD集群界面展示
查看>>
WebsitePanel部署指南
查看>>
Python 字符串格式化 (%操作符)
查看>>
C++右值引用
查看>>
win7远程桌面连接不上,解决办法
查看>>
优秀设计师是怎样炼成的?转自站酷 – 自由的猞猁 创作
查看>>
从本人做的安卓项目浅谈蓝牙(如有缺漏错误,还请指正)
查看>>
windows10 安装 vim +spf13
查看>>
bugfree中保存用例失败
查看>>
chromium浏览器开发系列第一篇:如何获取最新chromium源码
查看>>
Mysql数据联接用法
查看>>
python学习笔记4-数据类型-数字
查看>>
nagios监控check_mysql报错:libmysqlclient.so.18: cannot open shared object file
查看>>
[转]Java自动装箱与拆箱及其陷阱
查看>>
系统架构随笔 - 设计好每一款应用
查看>>
安装mysql过程
查看>>
/etc/profile和/etc/skel
查看>>