• Android入门写一个最简单的计算器


    这里将写的计算器是借用了下面写的计算器,并把其中需要注意的地方一一补充罗列:http://www.iteye.com/topic/141029

    需要演示的结果:

    image

    之前假设已经配置好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

    第一步,新建项目

    image

    image

    说明:

    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。

    image

    二、准备工作

    这里我们偷懒,使用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 文件。

    image

    三、代码与布局

    布局文件 main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="vertical" android:layout_width="fill_parent"
    	android:layout_height="fill_parent">
    	<EditText android:id="@+id/editText1" android:text="@string/hello"
    		android:digits="1234567890.+-*/%\n\t()" android:layout_width="match_parent"
    		android:layout_height="match_parent"></EditText>
    </LinearLayout>

    注意:

    我们把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.length() - 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 SDK and AVD Manager 中也可以做事后调整和新建

    image

    修改或者新建模拟器时,会有下面选择:

    image

    Name 就是一个名字,在模拟器管理中用于区分的名字

    Target 是选择模拟器的操作系统版本,我这里模拟的是 Android 2.2

    SD Card SD内存卡的大小

    Snapshot 拍照功能是否可用

    Skin 屏幕分辨率

    Hardware 其他硬件参数设置

    下面的表格总结了模拟器按键和键盘按键之间的映射关系。
    模拟器按键 键盘按键
    后退 ESC
    菜单 F1 或 PgUp
    开始 F2 或 PgDn
    呼叫 F3
    挂断 F4
    F5, F6 未分配
    电源按键 F7
    禁用/启用所有网络 F8
    开始跟踪 F9 (当且仅当有-trace 标记时有效)
    停止跟踪 F10 (当且仅当有-trace 标记时有效)
    主页 HOME
    方向键 左/上/右/下 小键盘 4/8/6/2
    方向键 中心建 小键盘 5
    调低音量 小键盘 负号(-)
    调高音量 小键盘 加号(+)

    Eclipse 中选择 Debug as Android Application 或者 Run as Android Application,就可以自动在模拟器上运行。

    五、部署到真实手机

    我个人比较喜欢豌豆荚,尤其是它可以通过Wifi来给手机安装功能。我是通过豌豆荚来部署在我们的真机的。

    如下图所示,我们在项目目录 bin 目录下可以看到已经生成好的 TestAndroidProject.apk 文件, 通过豌豆荚把这个文件传到手机即完成部署。

    image

    参考资料:

    Eclipse开发Android应用程序入门
    http://coolshell.cn/articles/4270.html

  • 相关阅读:
    【Exgcd】斩杀线计算大师
    【DP】操作集锦
    【DP】被3整除的子序列
    【DFS序】【CF-1328E】Tree Queries
    【规律】【CF1327-D】Carousel
    Luogu P4774 屠龙勇士
    LOJ 10149 凸多边形的划分
    Luogu P4036 火星人
    Luogu P3193 GT考试
    CF 986C AND Graph
  • 原文地址:https://www.cnblogs.com/ghj1976/p/2019883.html
Copyright © 2020-2023  润新知