现在的位置: 首页 > 综合 > 正文

android简易计算器

2013年09月18日 ⁄ 综合 ⁄ 共 6148字 ⁄ 字号 评论关闭

说明:简易计算器,当输入为空时,弹出对话框提示:没有输入数字;当被除数为0时,弹出对话框提示:被除数不能为空;输入数字后,点击加减乘除按钮,可以进行相应运算;点击menu菜单后,屏幕最下方出现关于和退出按钮,点击关于,弹出关于对话框显示相应信息;点击退出,直接退出程序。

1.布局,activity_main.xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/relative1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
<!-- 参与运算的第一个数 -->
        <EditText
            android:id="@+id/num1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginTop="10dp"
            android:ems="4"
            android:inputType="number" >

            <requestFocus />
        </EditText>
<!--运算符号 -->
        <TextView
            android:id="@+id/fuhao"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_toRightOf="@id/num1"
            android:padding="@dimen/padding_medium"
            android:text="@string/fuhao" />
<!-- 参与运算的第二个数 -->
        <EditText
            android:id="@+id/num2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_toRightOf="@id/fuhao"
            android:ems="4"
            android:inputType="number" />
<!-- 等号 -->
        <TextView
            android:id="@+id/denghao"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_toRightOf="@id/num2"
            android:padding="@dimen/padding_medium"
            android:text="@string/denghao" />
<!-- 结果 -->
        <TextView
            android:id="@+id/result"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_toRightOf="@id/denghao"
            android:padding="@dimen/padding_medium"
            android:text="@string/result" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
<!-- 加号 -->
        <Button
            android:id="@+id/add"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerHorizontal="true"
            android:ems="4"
            android:text="@string/add" />
<!-- 减号 -->
        <Button
            android:id="@+id/sub"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_toRightOf="@id/add"
            android:ems="4"
            android:text="@string/sub" />
<!-- 乘号 -->
        <Button
            android:id="@+id/mult"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_toRightOf="@id/sub"
            android:ems="4"
            android:text="@string/mult" />
<!-- 除号 -->
        <Button
            android:id="@+id/divid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/mult"
            android:ems="4"
            android:text="@string/divid" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
<!-- 关于按钮 -->
        <Button
            android:id="@+id/about"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/about" />
<!-- 退出按钮 -->
        <Button
            android:id="@+id/quit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/quit" />
    </RelativeLayout>

</LinearLayout>


2.MainActivity.java代码:

package cn.bzu.case1;

import java.text.DecimalFormat;

import cn.bzu.model.CalculatorBiz;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.RemoteViews.ActionException;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {
	private Double number1, number2;
	private EditText num1, num2;
	private TextView result, fuhao;
	private Button add, sub, mult, divid, quit, about;
	CalculatorBiz calculator;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		num1 = (EditText) this.findViewById(R.id.num1);
		num2 = (EditText) this.findViewById(R.id.num2);
		add = (Button) this.findViewById(R.id.add);
		sub = (Button) this.findViewById(R.id.sub);
		mult = (Button) this.findViewById(R.id.mult);
		divid = (Button) this.findViewById(R.id.divid);
		fuhao = (TextView) this.findViewById(R.id.fuhao);
		result = (TextView) this.findViewById(R.id.result);
		quit = (Button) this.findViewById(R.id.quit);
		about = (Button) this.findViewById(R.id.about);
		quit.setVisibility(View.INVISIBLE);
		about.setVisibility(View.INVISIBLE);
		add.setOnClickListener(new CalculatorClickListener());
		sub.setOnClickListener(new CalculatorClickListener());
		mult.setOnClickListener(new CalculatorClickListener());
		divid.setOnClickListener(new CalculatorClickListener());
	}

	private class CalculatorClickListener implements OnClickListener {
		@Override
		public void onClick(View v) {			
			// 如果editText为空
			if (num1.getText().toString().equalsIgnoreCase("")) {
				Toast.makeText(MainActivity.this, "没有输入数字!", Toast.LENGTH_SHORT)
						.show();
			} else if (num2.getText().toString().equalsIgnoreCase("")) {
				Toast.makeText(MainActivity.this, "没有输入数字!", Toast.LENGTH_SHORT)
						.show();
			} else {
				number1 = Double.parseDouble(num1.getText().toString());
				number2 = Double.parseDouble(num2.getText().toString());
				if (v.equals(add)) {
					result.setText(number1 + number2 + "");
					fuhao.setText("+");
				}
				if (v.equals(sub)) {
					result.setText(number1 - number2 + "");
					fuhao.setText("-");
				}
				if (v.equals(mult)) {
					result.setText(number1 * number2 + "");
					fuhao.setText("*");
				}
				if (v.equals(divid)) {
					if (number2 == 0) {
						Toast.makeText(MainActivity.this, "被除数不能为零!",
								Toast.LENGTH_SHORT).show();
					} else {
						result.setText(number1 / number2 + "");
						fuhao.setText("/");
					}
				}
			}
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		// 创建菜单,并设置图标,使用系统提供的图标,
		menu.add(0, R.id.about, 0, "关于").setIcon(android.R.drawable.ic_dialog_info);
		menu.add(0, R.id.quit, 1, "退出").setIcon(android.R.drawable.ic_lock_power_off);
		menu.findItem(R.id.quit);
		// 返回true即显示菜单
		return true;
	}

	@Override
	// 响应菜单单击事件,
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.about:
			// 关于
			AlertDialog.Builder dialog = new AlertDialog.Builder(this);
			dialog.setTitle("关于");
			dialog.setMessage("简易计算器!\n作者:vivy\n版本:1.0");
			dialog.show();
			break;
		case R.id.quit:
			// 退出
			this.finish();
			break;
		}
		return super.onOptionsItemSelected(item);
	}
}

3.效果图:

【上篇】
【下篇】

抱歉!评论已关闭.