Android入门--写一个最简单的计算器
2011年04月18日
这里将写的计算器是借用了下面写的计算器,并把其中需要注意的地方一一补充罗列:http://www.iteye.com/topic/141029
需要演示的结果:
之前假设已经配置好Android开发环境,如果没有,请参看下面2篇文章:
Win7 配置Android开发环境
http://www.cnblogs.com/ghj1976/archive/2011/04/15/ 2017292.html
ubuntu10.10 下安装android 2.2开发环境
http://www.cnblogs.com/ghj1976/archive/2011/04/02/ 2003847.html
第一步,新建项目
说明:
Project name:
在计算机中存储工程的目录名。
Application name:
应用的标题名字,我们在手机屏幕上显示应用的名字就是这个。
Package name:
Package name 是你的应用程序标示。当你开始准备在Android Market上发布你的应用程序的时候,Android用这个标识符精确地记录你的应用程序的更新过程,因此让包名唯一是非常重要的。尽管我们在这里使用了android.test这样的名字空间,对于真实的应用程序,你应该选择类似于com.你的公司名.你的应用程序名 这样的包名。
Create Activity:
Activity name(UI界面窗口的类名,从Activity继承而来)。
Min SDK Version
Min SDK Version 是你的Android程序所能运行得最早版本号。对于每个新发布的Android,SDK会增加并修改一些方法。通过选择一个版本号,Android(Android Market)会知道你的应用程序能运行在等于或晚于指定版本的设备之上。
注意,这里是SDK 的 API Level 数字,而不是 Platform ,比如我们最小运行在 Android 1.6 时, 我们这里应该是写 4 而不是 1.6。
二、准备工作
这里我们偷懒,使用beanshell来完成计算。http://www.beanshell.org/
这就需要我们下载对应的 jar 包
下载地址:http://www.beanshell.org/download.html
我们只需要下载:bsh-core 即: bsh-core-2.0b4.jar 这个文件
下载完成后,选择我们的项目,右键菜单中 “Build Path” 中选择 “Add External Archives” ,选择我们刚刚下载的 bsh-core-2.0b4.jar 文件。
三、代码与布局
布局文件 main.xml: 注意:
我们把EditText可输入的内容做了限制,只能输入跟计算和显示有关的一些字符。
代码文件 HelloWorldActivity.java : package ghj1976.HelloWorld; import bsh.EvalError; import bsh.Interpreter; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.widget.EditText; public class HelloWorldActivity extends Activity { private static EditText et; private static Interpreter i = new Interpreter(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); et = (EditText)findViewById(R.id.editText1); et.append("\n"); et.setSelection(et.length()); // 调整光标到最后一行 } @Override public boolean onKeyUp(int keyCode,KeyEvent event) { // 判断是否输入了回车 if(keyCode == KeyEvent.KEYCODE_ENTER) { String input = et.getText().toString(); // 这里用偷懒的方式取用户最后一行输入 String lastLine = input.substring(input.lastIndexOf("\n",input.lengt h() - 2)); et.append("\t\t"); et.append(eval(lastLine)+"\n"); et.setSelection(et.length()); } return true; } // 用 beanshell 偷懒来做算式计算 private Object eval(String input) { try { return i.eval(input); } catch(EvalError e) { return e.getMessage(); } } }
说明:
这里我们偷懒取最后一行用户输入的这里没有做必要的校验,如果多个回车可能会导致计算不出来数据。
四、在模拟器实验
如果还没有配置好模拟器,点击运行时会提示你配置模拟器
在 Window
发表评论
-
Android编译,打包、签名详细教程
2012-01-20 02:51 596Android编译,打包、签名详细教程 2011年05月25 ... -
Android中JNI编程的那些事儿
2012-01-20 02:51 938Android中JNI编程的那些事 ... -
Android命令行手动编译打包详解
2012-01-20 02:51 821Android命令行手动编译打 ... -
As3.0 decompiler反编译器
2012-01-20 02:51 578As3.0 decompiler反编译器 2 ... -
神马都是浮云
2012-01-19 10:43 453神马都是浮云 2011年06月02日 心情突然莫名的伤感 ... -
汪汪,记住神马都是浮云、
2012-01-19 10:43 528汪汪,记住神马都是浮云、 2012年01月08日 神 ... -
神马都是浮云
2012-01-19 10:43 565神马都是浮云 2011年09月14日 2011 ... -
神马都是浮云
2012-01-19 10:43 536神马都是浮云 2011年12月30日 坎坷的2011即将 ... -
想开了,神马都是浮云
2012-01-19 10:43 498想开了,神马都是浮云 2012年01月09日 最近几日的 ... -
常见的硬盘内存问题的解决方案,ADSL错误代码
2012-01-17 03:14 473常见的硬盘内存问题的解决方案,ADSL错误代码 2011年0 ... -
折腾我N久的flash 8软件终于可以打开了
2012-01-17 03:14 753折腾我N久的flash 8软件 ... -
Erase flash,Erase NVRAM命令与
2012-01-17 03:14 2612Erase flash,Erase NVRAM命令与 201 ... -
电脑知识
2012-01-17 03:14 537电脑知识 2010年06月23日 ... -
掌握这些电脑知识,你可以玩的很无耻
2012-01-17 03:14 589掌握这些电脑知识,你可以玩的很无耻 2011年09月05日 ... -
东北话4-8级考试~东北人试试!
2012-01-16 01:48 667东北话4-8级考试~东北人试试! 2009年06月01日 ... -
看看你是个合格的东北人不
2012-01-16 01:48 931看看你是个合格的东北人不 2009年10月16日 安 ... -
够格东北人测试
2012-01-16 01:48 595够格东北人测试 2009年10月03日 [转] 看看你是 ... -
浅谈医院执行力不佳的原因
2012-01-16 01:48 594浅谈医院执行力不佳的 ... -
《阳光家族核心会议精神概要》
2012-01-16 01:48 665《阳光家族核心会议精神概要》 2011年12月06日 ... -
两个 AIR SQLite 例子
2012-01-11 01:41 622两个 AIR SQLite 例子 2011年09月01日 ...
相关推荐
2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
作为大学任务,进行了一个新的Flutter项目。 描述 该项目用于教育目的。 基本概念是学生的“个人助手”。 用户应该能够添加他们在大学上过的课程和科目,并且应用程序应该一目了然地显示即将举行的课程。 每个科目都...