首页 > 其他分享 >Android入门--写一个最简单的计算器

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

时间:2023-06-22 19:32:11浏览次数:48  
标签:input -- import 应用程序 计算器 et Android 模拟器

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

需要演示的结果:

Android入门--写一个最简单的计算器_应用程序

之前假设已经配置好Android开发环境,如果没有,请参看下面2篇文章:

Win7 配置Android开发环境

ubuntu10.10 下安装android 2.2开发环境

 

第一步,新建项目

Android入门--写一个最简单的计算器_应用程序_02

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

说明:

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。

Android入门--写一个最简单的计算器_应用程序_04

二、准备工作

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

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

 

三、代码与布局

布局文件 main.xml:


<?xml versinotallow="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 中也可以做事后调整和新建

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

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

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

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 文件, 通过豌豆荚把这个文件传到手机即完成部署。

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

 

参考资料:

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

标签:input,--,import,应用程序,计算器,et,Android,模拟器
From: https://blog.51cto.com/u_15588078/6535339

相关文章

  • ubuntu10.10 下安装android 2.2开发环境
    一、安装Java6安装jre/jdksudoapt-getinstallsun-java6-binsun-java6-jresun-java6-jdk使用这个命令安装后,默认是安装在/usr/lib/jvm/ 目录下,以我为例,我这里是/usr/lib/jvm/java-6-sun-1.6.0.24目录,/usr/lib/jvm/下还有一个快捷方式java-6-sun有时候会安装多个jdk,......
  • C语言三子棋项目(顺序逻辑-小白学习笔记)
    首先要确定游戏的基本框架简易来说,由进入游戏--->选择菜单--->进入游戏三部分组成应用在c语言项目中,我们通过功能来对文件进行区分,主函数main()内进入游戏,通过test函数加入我们的菜单,但这里meau()菜单选项我们不希望执行一次,因为如果玩家选择错误,将会导致程序无法进行。这里通过dowh......
  • 安装Python
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]专题目录安装Python一、查询是否安装了Python及安装路径#查看当前Python版本python--versionPython2.7.16#查看当前所有Python版本路径appledeMBP:~apple$whichpython2.7/usr/lo......
  • 计算机系统结构复习笔记(五)
    第五章存储系统5.1 存储系统的层次结构5.1.1存储系统的层次结构人们对计算机系统结构指标的要求:容量大、速度快、价格低三个要求相互矛盾:速度越快,每位价格就越高;容量越大,每位价格就越低;容量越大,速度越慢。追求“容量大,价格低”需要采用大容量存储技术;追求高性能访存速......
  • 安装Python
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]专题目录安装Python一、查询是否安装了Python及安装路径#查看当前Python版本python--versionPython2.7.16#查看当前所有Python版本路径appledeMBP:~apple$whichpython2.7/usr/lo......
  • 关于高考一分一档的研究
    这篇博客的旨在研究偏态分布以下是偏态分布的定义:偏态分布是与“正态分布”相对,分布曲线左右不对称的数据次数分布,是连续随机变量概率分布的一种。可以通过峰度和偏度的计算,衡量偏态的程度。可分为正偏态和负偏态,前者曲线右侧偏长,左侧偏短;后者曲线左侧偏长,右侧偏短。——《简......
  • C++入门教程
    C++入门教程----------------------------------------------------------一.初识C++---------------------------------------------------------1.什么是C++.c++是一种较为基础的编程语言,虽然没有Python,Scratch那么高级,但是它应用范围很广.不论是信息奥赛还是国......
  • java.lang.ClassCastException java.util.Date cannot be cast to java.sql.Date
    报错信息:java.lang.ClassCastException:java.util.Datecannotbecasttojava.sql.Date原因是:不要这样进行转换。具体转换看这里https://www.cnblogs.com/javaxubo/p/17498174.html......
  • Codeforces Round 881 (Div. 3)--F2
    F2.OmskMetro(hardversion)#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;#defineendl"\n"#defineintlonglongconstintN=2e5+5;constintINF=0x3f3f3f3f;//假设一个区间的最大字段和为max最小字段和为min//那么[min,max]区间的......
  • MacBook 搭建python开发环境
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]专题目录MacBook搭建python开发环境一、需要安装的软件安装Python安装pip安装Virtualenv安装VSCodeVSCode安装Python扩展插件安装PyCharm二、IDE搭配VSCode+Python+pip+Virtuale......