想到第一天自己写了一个简单的四则运算程序的情景:我便想起了引起我们不断迭代开发的程序背景是:二柱子接受老师安排的给孩子出题的任务,每次需要给孩子设置出题任务,生成相应的小学运算题目,所以我们面对的需求客户是小学生,所以需要满足整数的运算和真分数的运算。这道题在我和队友连续的开发后,经历了c++的数次修改,因为我最熟悉的语言是C++,然后我利用此不断迭代开发,做出了能随机生成带有括号的混合运算式,并能判断用户结果输入,然而不幸的是二柱子需要找一种可行的方式进行开发进行发布,所以我c++写的命令框输入界面就不太符合要求了,问题来了,而我手中只有java了,我只有开始转为java开发模式。
我的出发的开始是做一个简易的网页版的系统,但是在进行可行性分析时发现有以下几点:
1.网页写出来后刚开始发布很难达到一个较好的效果,比如:界面的设计,和用户的交互性等,毕竟只是一个简单的生成题目的应用,所以很难显示网页的优势。
2.网页在实现技术时,有很多技术可以选择,比如在进行action的选择时因为要产生题目,然后再做题再写回答案录入数据库,选择的网页技术很多,很不利于判断什么方法进行开发能较好达到目的。
综合上述原因,还有这学期有幸选到了移动应用开发,能够有基础去实现一个简单的APP应用,所以我暂时选择用android进行开发。
但其实,这还是一个摸着石头过河的过程,毕竟自己的水平感觉也就是HelloWorld起步的阶段,但是我也不怕,毕竟没有挑战就没有进步嘛。
在今天完成android V1.0版的今天我还是十分高兴的,因为我发现在我有了基础java知识,而且还不弱的情况下,感觉入门很快,但也不是没有问题,如下是我遇到的一些知识和问题的总结:
生成随机数的函数
我个人感觉跟c++不会有太大差别,但是看了网上,感觉又受教了。
1.生成随机数函数Random() 生成在规定范围内的随机数(a~b)
Math.random()*b+a
还有自定义系统的时间函数
如默认当前系统时间的毫秒数作为种子数 Random r=new Random();
2.布局方式
其实布局的方式还是与java的方式很类似,我基本通过LinearLayout的线性布局,再在布局中添加一些按钮或者布局构成复杂的图形,而加载布局的方法基本都是通过ID来控制,而在android开发中有anctivity这个名词,简单看就是在一个android屏幕内运行的程序,就是一个activity,最后通过 setContentView()方法来给当前的活动加载一个布局。比如:setContentView(R.layout.first_layout);
在这之后很容易忘记将activity写入Androidmainfest中,其实这个很重要,这里的配置将决定你的软件布局显示顺序。
3.在activity中使用Toast
由toast可知这是android用来提醒用户的一种机制。首先需要定义一个弹出 Toast 的触发点,正好界面上有个按钮,那我们就让点击这个按
钮的时候弹出一个 Toast吧。在 onCreate()方法中添加代码。
Toast的用法非常简单,通过静态方法 makeText()创建出一个 Toast对象,然后调用 show()
将 Toast 显示出来就可以了。这里需要注意的是,makeText()方法需要传入三个参数。第一
个参数是 Context,也就是 Toast要求的上下文,由于活动本身就是一个 Context对象,因此
这里直接传入FirstActivity.this即可。第二个参数是Toast显示的文本内容,第三个参数是Toast
显示的时长,有两个内置常量可以选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG。
我这有一个参考的写的很好的博客(大家可以参考参考)
http://www.cnblogs.com/renqingping/archive/2012/09/24/Toast.html
4.关于LogCat
相信很多跟我一样习惯c++或者java的人都习惯用输出去打印日志,看错误都在控制台看,然而android进行改进,通过log打印程序中的各种信息。我是简单的看了logcat,其中我的代码错误是在最后一个caused by中查到的。
现在就写到这么多,随着下一阶段的冲刺,我会继续更新整个项目进程。下面是软件运行的简单截图(尚未加上界面).
日进一小步,月过一大步~~加油