Android 简单计算器

本例子基于Android googl sdk一书的计算器实现例子:

1 创建三个TextView对象,两个 EditText对象,四个Button对象

main.xml为

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

android:id="@+id/widget0"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

xmlns:android="http://schemas.android.com/apk/res/android"

>

<EditText android:id="@+id/EditText1"

android:layout_height="wrap_content"

android:layout_width="47px"

android:textSize="18sp"

android:layout_x="26px"

android:layout_y="52px"

/>

<EditText android:id="@+id/EditText2"

android:layout_height="wrap_content"

android:layout_width="45px"

android:textSize="18sp"

android:layout_x="128px"

android:layout_y="51px"/>

<TextView

android:id="@+id/MyTextView1"

android:layout_width="30px"

android:layout_height="33px"

android:textSize="18sp"

android:layout_x="92px"

android:layout_y="60px"

/>

<TextView

android:id="@+id/MyTextView3"

android:layout_width="18px"

android:layout_height="wrap_content"

android:text="="

android:textSize="18sp"

android:layout_x="189px"

android:layout_y="63px"

/>

<TextView

android:id="@+id/MyTextView2"

android:layout_width="30px"

android:layout_height="wrap_content"

android:textSize="18sp"

android:layout_x="219px"

android:layout_y="61px"

/>

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="25sp"

android:layout_x="12px"

android:layout_y="161px"

android:text="@string/but_str1" />

<Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="25sp"

android:layout_x="85px"

android:layout_y="159px"

android:text="@string/but_str2" />

<Button

android:id="@+id/button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="25sp"

android:layout_x="158px"

android:layout_y="161px"

android:text="@string/but_str3" />

<Button

android:id="@+id/button4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="25sp"

android:layout_x="239px"

android:layout_y="161px"

android:text="@string/but_str4" />

</AbsoluteLayout>

这里样式还有一点问题

按钮显示的内容通过String.xml 获取。也可直接在main.xml中修改android:text="+"指定如上指定显示“+”.

Activity 对象

package com.app.android;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

public class MyFirstActivity extends Activity {

/** Called when the activity is first created. */

private Button button1;

private TextView textView1;

private TextView textView2;

private Button button2;

private Button button3;

private Button button4;

private EditText editText1;

private EditText editText2;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

button1=(Button)findViewById(R.id.button1);

button2=(Button)findViewById(R.id.button2);

button3=(Button)findViewById(R.id.button3);

button4=(Button)findViewById(R.id.button4);

editText1=(EditText)findViewById(R.id.EditText1);

editText2=(EditText)findViewById(R.id.EditText2);

textView1=(TextView)findViewById(R.id.MyTextView1);

textView2=(TextView)findViewById(R.id.MyTextView2);

button1.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View v)

{

// TODO Auto-generated method stub

if(confirm(editText1,editText2)){

textView1.setText("+");

String strRet=format(Float.parseFloat(editText1.getText().toString())+Float.parseFloat(editText2.getText().toString()));

textView2.setText(strRet);

}

}

});

button2.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View v)

{

// TODO Auto-generated method stub

if(confirm(editText1,editText2)){

textView1.setText("-");

String strRet=format(Float.parseFloat(editText1.getText().toString())-Float.parseFloat(editText2.getText().toString()));

textView2.setText(strRet);

}

}

});

button3.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View v)

{

// TODO Auto-generated method stub

if(confirm(editText1,editText2)){

textView1.setText("*");

String strRet=format(Float.parseFloat(editText1.getText().toString())*Float.parseFloat(editText2.getText().toString()));

textView2.setText(strRet);

}}

});

button4.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View v)

{

// TODO Auto-generated method stub

if(confirm(editText1,editText2)){;

textView1.setText("/");

String strRet=format(Float.parseFloat(editText1.getText().toString())/Float.parseFloat(editText2.getText().toString()));

textView2.setText(strRet);

}}

});

}

/**

* 格式化结果

* @param num

* @return

*/

private String format(float num){

NumberFormat formater=new DecimalFormat("0.00");

String s=formater.format(num);

return s;

}

/**

* 确认运算项是否完整

* @param text1

* @param text2

* @return

*/

private boolean confirm(EditText text1,EditText text2){

String editText1=text1.getText().toString();

String editText2=text2.getText().toString();

//System.out.println(editText1+","+editText2);

if((editText1!=null&&editText1.equals(""))||(editText2!=null&&editText2.equals(""))){

new AlertDialog.Builder(MyFirstActivity.this).setTitle(R.string.title).setMessage(R.string.msg).setPositiveButton(

R.string.ok,new DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialoginterface,int i){

dialoginterface.dismiss();

}

}

).show();

return false;

}

else{return true;}

}

}

方法都已经注释了

更多例子参考:http://itlanbao.com/preview.aspx#1,0

时间: 2024-10-12 02:58:14

Android 简单计算器的相关文章

Android 简单计算器源码....

PS:今天算是闲着没事做了一个小型的计算器...顺便熟悉一下Android的布局,组件,以及时间监听的方法...就当是做了一个小小的练习吧...     顺便去对比了一下别人写的代码...有的使用到了集合框架去实现,我却是用的数组,相比之下实在是有点弱爆了...sad....自己还需要努力啊... <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_widt

Android简单计算器

这是很久之前做的,方法很简单,都是一些基础的,但还有很多地方需要改善的. activity_main.xml布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation=

菜鸟学Android编程——简单计算器《一》

菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少,加减乘除就可以. 第一步:设计布局文件 界面如下图: 由于刚开始学Android,对布局文件也不是很了解,边查边找,最后凑合着写好了布局文件. 注意事项:此布局文件用到了GridLayout布局,是在Android4.0以上才出现的(不知道谷歌有没有开发相应的包来适配4.0以下版本). 有关Gri

HDU1237 简单计算器 【栈】+【逆波兰式】

版本:1.0 日期:2014.5.17 2014.6.1 版权:© 2014 kince 转载注明出处 在介绍SwitchButton之前,先来看一下系统Button是如何实现的.源码如下: @RemoteView public class Button extends TextView { public Button(Context context) { this(context, null); } public Button(Context context, AttributeSet att

android实现计算器功能

设计一个简单的计算器. 第一个Activity的界面. 第二个Activity显示算式和计算结果. 第一个Activity代码: import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; impor

j2ee-JSP之简单计算器

来源韩顺平.j2ee视频实战教程jsp第1讲(下集) -------------------------------------------------------------------------------------------------------- 简单计算器,可以控制输入的数(仅第一个数)不能为空且不能为字符串 myCal.jsp代码 1 <!--这是计算器的界面 --> 2 <!-- 可以控制输入的数不能为空且不能为字符串 --> 3 <%@ page co

JAVA编写的简单计算器

package com.hellojava.practice.test; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; impo

[Java.web]简单计算器

项目的  WebRoot 目录下的 calculator.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <head> <title>计算结果</title> </head> <body> <jsp:us

NOIP19:简单计算器

/* 1.4编程基础之逻辑表达式与条件分支 19:简单计算器 总时间限制: 1000ms 内存限制: 65536kB 描述 一个最简单的计算器,支持+, -, *, / 四种运算.仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围. 输入 输入只有一行,共有三个参数,其中第1.2个参数为整数,第3个参数为操作符(+,-,*,/). 输出 输出只有一行,一个整数,为运算结果.然而: 1. 如果出现除数为0的情况,则输出:Divided by zero! 2. 如果出现无效的操作符