继续,今天讨论的是记录文件的读写。因为原来在Brew平台上实现的数独将题库是一个二进制文件,所以在Android就直接拿那个文件来用了。
计划实现两个函数,先是LoadTiList(),加载题库,先装题库文件放在资源里,然后从资源里加载它作为一个DataInputStream即可。代码也没几行,如下:
publicstaticbooleanLoadTiList(MainActivityme)
...{
DataInputStreamin=null;
try
...{
in=newDataInputStream(me.getResources().openRawResource(R.raw.ti));
byte[]bufC4=newbyte[4];
byte[]bufC81=newbyte[81];
//总个数
in.read(bufC4,0,4);
intlen=((int)bufC4[3]<<24)+((int)bufC4[2]<<16)+((int)bufC4[1]<<8)+(int)bufC4[0];
for(inti=0;i<len;i++)
...{
Questionti=newQuestion();
//代码
in.read(bufC4,0,4);
ti.code=(long)(((long)bufC4[3]<<24)+((long)bufC4[2]<<16)+((long)bufC4[1]<<8)+(long)bufC4[0]);
//时间
in.read(bufC4,0,4);
SharedPreferencessp=me.getPreferences(Context.MODE_WORLD_READABLE);
ti.time=sp.getLong(Long.toString(ti.code),0);
//数据
in.read(bufC81,0,81);
for(intj=0;j<81;j++)ti.data[j]=bufC81[j];
me.tiList.add(ti);
}
in.close();
}
catch(Exceptionex)...{
returnfalse;
}
finally...{
try...{in.close();}catch(Exceptione)...{}
}
returntrue;
}
这里最麻烦的是因为java里没有unsigned类型,所以会溢出,比较郁闷,这个没有解决,只能是生成题库文件里注意一下了,不能与brew平台共用那个题库文件了。
二是保存记录,在brew平台我直接用一个文件搞定,读写它,但是android不能这样了,因为ti.dat是从资源中加载的,所以只能是静态的,不可修改,那记录只能放入preferences中了,代码如下:
publicstaticbooleanSaveTiList(MainActivityme)
...{
try
...{
SharedPreferencessp=me.getPreferences(Context.MODE_WORLD_WRITEABLE);
Questionti=me.gridView.ti;
sp.edit().putLong(Long.toString(ti.code),ti.time);
sp.edit().commit();
}
catch(Exceptionex)...{
returnfalse;
}
returntrue;
}
SharePreferences可以按key-value来保存记录,所以key用题目的code,则value就是解它所用的时间了。
Android不能直接访问app目录下的文件,所以不能够象brew那样将数据文件放在程序目录下供它读写,而在
Activity中提供的两个函数 openFileOutput和openFileInput,虽可用来读写文件,但是总是不太方便。
另外,用SQLite其实也不方便,因为手机中弄这些东西,事实上用处不大。
分享到:
相关推荐
10. 数独游戏的推理方法:数独游戏的推理方法是指通过逻辑推理和算法实现数独游戏的解题过程。 本论文通过对基于Android系统的数独游戏程序设计的研究和实现,阐述了面向对象的程序设计方法、Android游戏开发技术和...
基于 Android 平台的数独游戏设计与实现是一个复杂的过程,需要扎实的编程基础和良好的设计能力。通过本资源摘要信息,我们可以了解数独游戏的基本概念、Android 平台的开发环境、游戏的设计与实现、游戏的测试与 ...
本文将深入探讨这些关键点,帮助开发者理解如何从源码层面构建一个完整的数独游戏。 1. **Android Studio与项目结构** - Android Studio是Google提供的集成开发环境(IDE),用于编写Android应用程序。数独游戏...
这个"Android数独游戏源码"是一个很好的学习资源,适合对Android开发和数独游戏算法感兴趣的开发者。 首先,让我们了解一下Android开发的基础知识。Android是Google推出的一个开源移动操作系统,主要应用于智能手机...
【cocos2d-x3.9 数独小游戏】是一个基于cocos2d-x 3.9版本开发的经典数独游戏源代码,适用于初学者进行学习和实践。cocos2d-x是一个跨平台的2D游戏开发框架,它采用C++语言,支持多种操作系统,如iOS、Android、...
在这款Android应用源码中,我们可以学习到如何利用Java语言和Android SDK来实现这样一个互动的游戏。 首先,我们要理解Android应用的基本架构。源码通常会包含以下几个部分:`MainActivity.java`是应用程序的主要...
本源码实例为初学者提供了一个良好的起点,让您逐步掌握Android游戏开发的基础。 一、项目结构 在"Android 数独 游戏 源码"中,主要包含以下几个关键部分: 1. `res` 文件夹:存储应用程序的资源,如布局文件、...
在本资源中,我们主要探讨的是一个Android平台上开发的数独游戏源代码。这个项目是Android3系列教程的一部分,特别关注于数独游戏的开发。通过分析和学习这个源码,开发者可以深入了解如何在Android环境下构建一款...
3. **Activity与布局**: 数独游戏的主界面通常由一个`Activity`管理,其中包含用于显示数独盘面的布局。布局文件通常使用XML编写,例如`activity_sudoku.xml`,里面可能包含了`GridLayout`或`TableLayout`来模拟数独...
总的来说,这个 Android 数独游戏源码是一个很好的学习案例,可以帮助开发者了解如何在 Android 上构建一个完整的应用,包括界面设计、逻辑处理以及数据管理等多个方面。通过对源码的阅读和分析,可以提升对 Android...
在Android平台上开发数独游戏,可以提供给用户一个便捷的移动平台进行游戏体验。本文将详细解析一款基于Eclipse开发的Android数独游戏源码——"NumberPlace2"。 1. **项目结构** - `res`: 资源文件夹,包括布局...
【Android数独游戏开发】是针对移动平台,特别是Android系统的一款益智类游戏项目。数独游戏因其逻辑性和趣味性,深受广大用户喜爱,而基于Android平台开发的数独游戏,可以让玩家在智能手机或平板电脑上随时随地...
在本项目中,`MySudoku`可能包含一个用于展示数独盘面的自定义View,这个View可能继承自`View`或`ImageView`,并在其中绘制9x9的格子。每个小格子可以通过相对布局或者网格布局进行定位,按钮用于清除、提交答案等...
总的来说,开发一个Android简单数独游戏,需要掌握Android应用的基本架构、UI设计、数据处理、用户交互以及一些算法知识,如回溯法。这个过程不仅能够提升编程技能,也能带来设计和实现游戏的乐趣。
总的来说,"android入门的数独小游戏"项目是学习Android编程的一个好例子,它涵盖了基本的UI设计、用户交互、数据结构、逻辑判断等多个方面,对于初学者来说,完成这个项目不仅能够掌握Android开发的基本技能,也能...
这个"android数独游戏源代码"项目是为Android平台开发的一个简单的数独游戏应用。通过分析源代码,我们可以学习到以下几个关键的Android开发知识点: 1. **布局设计**:在Android应用中,界面布局通常使用XML文件来...
c++趣味编程------数独 无解释 可以自己改代码 无bug