Android 简易计算器实现

自学Android中,做出简易的计算器与大家分享。

实现的功能:

1.简易运算+,-,*,/,但没有优先级运算,就是只能一步一步运算(以后再优化)

2.翻阅图片,增加趣味效果

3.回退功能,就是返回一步

4.消除,清空数据,再次准备开始运算

5.啊,那个小数点目前还没用,不过倒也挺容易添加功能的

提几点:1.格式转换,显示是不是字符串需要仔细检查,不是的话转换格式,例如:

  String rem=String.valueOf(ans[jans]);
                        show.setText(rem);
2.越界,图片浏览到底会越界,可以添加求余运算,使其返回第一张图

3.组件命名要容易对应,我觉得我有部分写的复杂了(希望大家多留言指教指教我这小白)

4.学好Java,对于Android就容易上手

好了,欢迎大家下载转载,相互交流,共同进步

我使用的环境是Android studio,至于如何将我的代码弄到大家的环境中,请自己探索,另外我的计算器中有着图片文件所以下载代码会需要在相应位置添加图片,或注释我的图片代码

运行图片:


源代码:

package com.example.hp.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    Button but1,but2,but3,but4,but5,but6,but7,but8,but9,but0;
    Button butcheng,butchu,butdeng,butdian,butjia,butjian,butclear,butback;
    TextView show;
    ImageView pics;
    int[] ans=new int[100];
    char[] run=new char[100];
    int jans=0,jrun=0;
    int jpic=0;
    int[] pictures=new int[]{//五张图片
        R.drawable.monster5_1,
        R.drawable.monster4_1,
        R.drawable.monster3_3,
        R.drawable.monster2_1,
        R.drawable.monster1,
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        for(int i=0;i<ans.length;i++)
        {
            ans[i]=0;
            run[i]=' ';
        }
        butback=(Button)findViewById(R.id.buttongoback);
        but0=(Button)findViewById(R.id.button0);
        but1=(Button)findViewById(R.id.button1);
        but2=(Button)findViewById(R.id.button2);
        but3=(Button)findViewById(R.id.button3);
        but4=(Button)findViewById(R.id.button4);
        but5=(Button)findViewById(R.id.button5);
        but6=(Button)findViewById(R.id.button6);
        but7=(Button)findViewById(R.id.button7);
        but8=(Button)findViewById(R.id.button8);
        but9=(Button)findViewById(R.id.button9);
        butjia=(Button)findViewById(R.id.buttonjia);
        butjian=(Button)findViewById(R.id.buttonjian);
        butcheng=(Button)findViewById(R.id.buttoncheng);
        butchu=(Button)findViewById(R.id.buttonchu);
        butdian=(Button)findViewById(R.id.buttondian);
        butdeng=(Button)findViewById(R.id.buttondeng);
        butclear=(Button)findViewById(R.id.buttonclear);
        show=(TextView)findViewById(R.id.show);
        pics=(ImageView)findViewById(R.id.showpic);

        pics.setImageResource(pictures[jpic]);

        butback.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String ok=show.getText().toString();
                if(ok=="+"||ok=="-"||ok=="*"||ok=="/")
                {
                    run[jrun]=' ';
                    jrun-=1;jans-=1;
                    show.setText("");
                }
                else
                {
                    if(ans[jans]==0);
                    else
                    {
                        ans[jans]/=10;
                        String rem=String.valueOf(ans[jans]);
                        show.setText(rem);
                    }
                }
            }
        });
        butclear.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for(int i=0;i<ans.length;i++)
                {
                    ans[i]=0;
                    run[i]=' ';
                }
                jans=0;jrun=0;
                show.setText("已经清空,请重新输入");
            }
        });
        but1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+1;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+2;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+3;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+4;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+5;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+6;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+7;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+8;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10+9;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        but0.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ans[jans]=ans[jans]*10;
                String rem=String.valueOf(ans[jans]);
                show.setText(rem);
            }
        });
        butjia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                show.setText("+");
                run[jrun]='+';
                jans++;jrun++;
            }
        });
        butjian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                show.setText("-");
                run[jrun]='-';
                jans++;jrun++;
            }
        });
        butcheng.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                show.setText("*");
                run[jrun]='*';
                jans++;jrun++;
            }
        });
        butchu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                show.setText("/");
                run[jrun]='/';
                jans++;jrun++;
            }
        });
        butdeng.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int answer=ans[0];
               for(int i=0;i<jrun;i++)
               {
                   if(run[i]=='+')
                   {
                       answer+=ans[i+1];
                   }
                   else if(run[i]=='-')
                   {
                       answer-=ans[i+1];
                   }
                   else if(run[i]=='*')
                   {
                       answer*=ans[i+1];
                   }
                   else if(run[i]=='/')
                   {
                       answer/=ans[i+1];
                   }
               }
                String end=String.valueOf(answer);
                show.setText("="+end);
                pics.setImageResource(pictures[++jpic%pictures.length]);//翻阅图片

            }
        });
    }
}
界面设计代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.hp.myapplication.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"
        android:id="@+id/button1"
        android:textSize="30dp"
        android:layout_above="@+id/button4"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="2"
        android:id="@+id/button2"
        android:textSize="30dp"
        android:layout_above="@+id/button5"
        android:layout_toRightOf="@+id/button1"
        android:layout_toEndOf="@+id/button1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="3"
        android:id="@+id/button3"
        android:textSize="30dp"
        android:layout_alignTop="@+id/button2"
        android:layout_toRightOf="@+id/button2"
        android:layout_toEndOf="@+id/button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="4"
        android:id="@+id/button4"
        android:textSize="30dp"
        android:layout_alignTop="@+id/button6"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="5"
        android:id="@+id/button5"
        android:textSize="30dp"
        android:layout_alignTop="@+id/button4"
        android:layout_toRightOf="@+id/button4"
        android:layout_toEndOf="@+id/button4" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="6"
        android:id="@+id/button6"
        android:textSize="30dp"
        android:layout_above="@+id/button9"
        android:layout_toRightOf="@+id/button5"
        android:layout_toEndOf="@+id/button5" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="7"
        android:id="@+id/button7"
        android:textSize="30dp"
        android:layout_alignTop="@+id/button8"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="8"
        android:id="@+id/button8"
        android:textSize="30dp"
        android:layout_above="@+id/button0"
        android:layout_alignLeft="@+id/button0"
        android:layout_alignStart="@+id/button0" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="9"
        android:id="@+id/button9"
        android:textSize="30dp"
        android:layout_alignTop="@+id/button8"
        android:layout_toRightOf="@+id/button8"
        android:layout_toEndOf="@+id/button8" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:id="@+id/button0"
        android:textSize="30dp"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/button7"
        android:layout_toEndOf="@+id/button7" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/show"
        android:text="Please input"
        android:textSize="35dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+"
        android:id="@+id/buttonjia"
        android:textSize="30dp"
        android:layout_alignTop="@+id/button3"
        android:layout_toRightOf="@+id/button3"
        android:layout_toEndOf="@+id/button3" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="-"
        android:id="@+id/buttonjian"
        android:textSize="30dp"
        android:layout_above="@+id/button9"
        android:layout_toRightOf="@+id/button6"
        android:layout_toEndOf="@+id/button6" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="*"
        android:id="@+id/buttoncheng"
        android:textSize="30dp"
        android:layout_alignTop="@+id/button9"
        android:layout_toRightOf="@+id/button9"
        android:layout_toEndOf="@+id/button9" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="/"
        android:id="@+id/buttonchu"
        android:textSize="30dp"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/buttondeng"
        android:layout_toEndOf="@+id/buttondeng" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="="
        android:id="@+id/buttondeng"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/button0"
        android:layout_toEndOf="@+id/button0"
        android:textSize="30dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="."
        android:id="@+id/buttondian"
        android:layout_alignBottom="@+id/button0"
        android:layout_toLeftOf="@+id/button0"
        android:layout_toStartOf="@+id/button0"
        android:textSize="30dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="clear"
        android:id="@+id/buttonclear"
        android:textSize="30dp"
        android:layout_above="@+id/button3"
        android:layout_alignRight="@+id/buttonjia"
        android:layout_alignEnd="@+id/buttonjia" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="get back"
        android:id="@+id/buttongoback"
        android:textSize="30dp"
        android:layout_alignBaseline="@+id/buttonclear"
        android:layout_alignBottom="@+id/buttonclear"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/showpic"
        android:src="@drawable/monster3_3"
        android:layout_above="@+id/buttonclear"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值