android实现计算器功能

2025-10-24 07:21:42

1、//table_main.xml布局代码

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

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

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:background="#efaa4a"

    android:orientation="vertical" >

    <TextView

        android:id="@+id/tv"

        android:layout_width="match_parent"

        android:layout_height="40dip"

        android:layout_marginTop="5dip"

        android:layout_marginLeft="3dip"

        android:layout_marginRight="3dip"

        android:gravity="right"

        android:textSize="30dip"

        android:textColor="#efaa4a"

        android:background="#ad0000"

        android:text="" />

    <TableLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content" >

        <TableRow

            android:id="@+id/tableRow1"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content" >

            <Button

            android:id="@+id/Button07"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="7" />

        <Button

            android:id="@+id/Button08"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="8" />

        <Button

            android:id="@+id/Button09"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="9" />

        <Button

            android:id="@+id/ButtonJia"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="+" />

        </TableRow>

        <TableRow

            android:id="@+id/tableRow2"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content" >

          <Button

            android:id="@+id/Button04"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="4" />

        <Button

            android:id="@+id/Button05"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="5" />

        <Button

            android:id="@+id/Button06"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="6" />

        <Button

            android:id="@+id/ButtonJian"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="-" />

            

        </TableRow>

        <TableRow

            android:id="@+id/tableRow3"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content" >

            <Button

            android:id="@+id/Button01"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="1" />

        <Button

            android:id="@+id/Button02"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="2" />

        <Button

            android:id="@+id/Button03"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="3" />

        <Button

            android:id="@+id/ButtonCheng"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="*" />

            

        </TableRow>

        <TableRow

            android:id="@+id/tableRow4"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content" >

         <Button

            android:id="@+id/Button00"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="0" />

        <Button

            android:id="@+id/ButtonC"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="c" />

        <Button

            android:id="@+id/ButtonDengyu"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="=" />

        <Button

            android:id="@+id/ButtonChu"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="/" />

        </TableRow>

    </TableLayout>

</LinearLayout>

2、//Sample2_2_Activity.java

package com.bn.es2b; //包名

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 Sample2_2_Activity 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.table_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()

        {

        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()

        {

        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()

    {

    public void onClick(View v)

    {

    String str=tv.getText().toString().trim();

    result0=Integer.parseInt(str);

    tv.setText("");

    flag=id;

    }

    }

    );

    }

}

android实现计算器功能

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢