安卓简易计算器代码 - 大锤资源网

安卓简易计算器代码

作者: 大锤     发布于「 技术分享 」 - 大锤资源网

2020-3-19 分类: 技术分享 阅读(192)评论(0)
当前位置:首页 > 技术分享 > 正文

作者: 大锤

全网最全的网络资源分享网站

手机扫码查看

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

效果如图所示,一个简单的计算器

 

首先在activity_main.xml中创建布局文件

代码如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingTop="5dip" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="fill_parent"
        android:layout_height="40dip"
        android:layout_marginLeft="5dip"
        android:layout_marginRight="5dip"
        android:background="#FFFFFF"
        android:gravity="center_vertical|right"
        android:textColor="#ff0000"
        android:textSize="30sp" >
    </TextView>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="5dip" >

        <Button
            android:id="@+id/Button07"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="7"
            android:textSize="25sp" />

        <Button
            android:id="@+id/Button08"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="8"
            android:textSize="25sp" />

        <Button
            android:id="@+id/Button09"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="9"
            android:textSize="25sp" />

        <Button
            android:id="@+id/ButtonJia"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="+"
            android:textSize="25sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="5dip" >

        <Button
            android:id="@+id/Button04"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="4"
            android:textSize="25sp" />

        <Button
            android:id="@+id/Button05"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="5"
            android:textSize="25sp" />

        <Button
            android:id="@+id/Button06"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="6"
            android:textSize="25sp" />

        <Button
            android:id="@+id/ButtonJian"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="-"
            android:textSize="25sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="5dip" >

        <Button
            android:id="@+id/Button01"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="1"
            android:textSize="25sp" />

        <Button
            android:id="@+id/Button02"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="2"
            android:textSize="25sp" />

        <Button
            android:id="@+id/Button03"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="3"
            android:textSize="25sp" />

        <Button
            android:id="@+id/ButtonCheng"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="*"
            android:textSize="25sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="5dip" >

        <Button
            android:id="@+id/Button00"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="0"
            android:textSize="25sp" />

        <Button
            android:id="@+id/ButtonC"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="c"
            android:textSize="25sp" />

        <Button
            android:id="@+id/ButtonDengyu"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="="
            android:textSize="25sp" />

        <Button
            android:id="@+id/ButtonChu"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="/"
            android:textSize="25sp" />
    </LinearLayout>

</LinearLayout>

 

 

 

其次在MainActivity中编写算法代码

 

package com.example.zhangtao;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {
	TextView tv;
	int[] buttons; // 数字按钮数组
	int result;
	int result0;
	int result1;

	Button buttonC; // 按钮对象声明
	Button buttonJia;
	Button buttonJian;
	Button buttonCheng;
	Button buttonChu;
	Button buttonDengyu;

	String str1; // 旧输入的值
	String str2; // 新输入的值

	int flag = 0; // 计算标志位,0第一次输入;1加;2减;3乘;4除;5等于
	Button temp;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main); // 跳转到main界面
		initButton();

		// 清空按钮的点击事件监听器
		buttonC.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				str1 = "";
				str2 = ""; // 清空记录
				tv.setText(str1);
				flag = 0;
			}
		});
		// 监听
		for (int i = 0; i < buttons.length; i++) {
			temp = (Button) findViewById(buttons[i]);
			temp.setOnClickListener( // 为Button添加监听器
			new OnClickListener() {
				@Override
				public void onClick(View v) {
					str1 = tv.getText().toString().trim();
					str1 = str1 + String.valueOf(((Button) v).getText());// 获得新输入的值
					System.out.println("str1" + ":::" + str1);
					tv.setText(str1);
				}
			});
		}

		buttonListener(buttonJia, 1);
		buttonListener(buttonJian, 2);
		buttonListener(buttonCheng, 3);
		buttonListener(buttonChu, 4);

		buttonDengyu.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				System.out.println(str1);
				result1 = Integer.parseInt(str1);
				if (flag == 1) {
					result = result0 + result1;
					System.out.println(result0 + ":" + result1);
				} else if (flag == 2) {
					result = result0 - result1;
				} else if (flag == 3) {
					result = result0 * result1;
				} else if (flag == 4) {
					result = (int) (result0 / result1);
				}
				String str = (result + "").trim();
				System.out.println(str);
				tv.setText(str);
			}
		});
	}

	// 初始化按钮
	public void initButton() { // 初始化控件资源
		tv = (TextView) this.findViewById(R.id.tv); // 获取文本框控件对象
		str1 = String.valueOf(tv.getText());
		str2 = ""; // 初始化运算输入数值

		buttonC = (Button) this.findViewById(R.id.ButtonC); // 获得计算按钮的按钮对象
		buttonJia = (Button) this.findViewById(R.id.ButtonJia);
		buttonJian = (Button) this.findViewById(R.id.ButtonJian);
		buttonCheng = (Button) this.findViewById(R.id.ButtonCheng);
		buttonChu = (Button) this.findViewById(R.id.ButtonChu);
		buttonDengyu = (Button) this.findViewById(R.id.ButtonDengyu);

		buttons = new int[] { // 记录数值按钮的id
		R.id.Button00, R.id.Button01, R.id.Button02, R.id.Button03,
				R.id.Button04, R.id.Button05, R.id.Button06, R.id.Button07,
				R.id.Button08, R.id.Button09 };
	}

	// 按钮监听
	public void buttonListener(Button button, final int id) {
		button.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				String str = tv.getText().toString().trim();
				result0 = Integer.parseInt(str);
				tv.setText("");
				flag = id;
			}
		});
	}
}
分享到:
未经允许不得转载:

作者: 大锤, 转载或复制请以 超链接形式 并注明出处 大锤资源网
原文地址: 《安卓简易计算器代码》 发布于2020-3-19

评论

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏