精华内容
下载资源
问答
  • androidstudio计算器代码
    2021-06-04 00:31:10

    Android Studio实现简易计算器

    发布时间:2020-09-09 22:15:44

    来源:脚本之家

    阅读:385

    作者:RikkaTheWorld

    如果是制作简易计算器的话是基本没有难点的,供大家参考,具体内容如下

    步骤是先写好界面布局,将按钮的布局、字号颜色啥的做好,再就是设置监听器。

    使用了NoTitleBar的主题

    代码如下:

    activity_main里关于界面的代码:

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

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

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".MainActivity"

    >

    android:id="@+id/et_input"

    android:layout_width="fill_parent"

    android:layout_height="90dp"

    android:background="@drawable/white_bg"

    android:editable="false"

    android:gravity="right|bottom"

    android:paddingBottom="20dp"

    android:paddingRight="20dp"

    android:textSize="50sp" />

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:layout_marginTop="30dp"

    android:orientation="horizontal"

    android:gravity="center_horizontal"

    >

    android:id="@+id/bt_clr"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="C"

    android:gravity="right|bottom"

    android:textSize="30sp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_del"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="DEL"

    android:gravity="right|bottom"

    android:textSize="30sp"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_div"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="÷"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_mul"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="×"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:layout_marginTop="10dp"

    android:orientation="horizontal"

    android:gravity="center_horizontal"

    >

    android:id="@+id/bt_7"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="7"

    android:gravity="right|bottom"

    android:textSize="30sp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_8"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="8"

    android:gravity="right|bottom"

    android:textSize="30sp"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_9"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="9"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_sub"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="-"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:layout_marginTop="10dp"

    android:orientation="horizontal"

    android:gravity="center_horizontal"

    >

    android:id="@+id/bt_4"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="4"

    android:gravity="right|bottom"

    android:textSize="30sp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_5"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="5"

    android:gravity="right|bottom"

    android:textSize="30sp"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_6"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="6"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_add"

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:text="+"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:orientation="horizontal"

    android:layout_marginTop="10dp"

    android:gravity="center_horizontal">

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:orientation="vertical"

    >

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:orientation="horizontal"

    >

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:id="@+id/bt_1"

    android:text="1"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:id="@+id/bt_2"

    android:text="2"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:id="@+id/bt_3"

    android:text="3"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:orientation="horizontal"

    android:layout_marginTop="10dp">

    android:layout_width="170dp"

    android:layout_height="80dp"

    android:id="@+id/bt_0"

    android:text="0"

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:layout_width="80dp"

    android:layout_height="80dp"

    android:id="@+id/bt_pt"

    android:text="."

    android:textSize="30sp"

    android:gravity="right|bottom"

    android:layout_marginLeft="10dp"

    android:background="@drawable/white_selector"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    android:id="@+id/bt_eq"

    android:layout_width="80dp"

    android:layout_height="170dp"

    android:layout_marginLeft="10dp"

    android:background="@drawable/orange_selector"

    android:gravity="right|bottom"

    android:text="="

    android:textSize="30sp"

    android:paddingRight="15sp"

    android:paddingBottom="15sp"

    />

    Mainactivity的代码:

    package com.example.administrator.calculatordemo;

    import android.app.Activity;

    import android.content.DialogInterface;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

    public class MainActivity extends Activity implements View.OnClickListener{

    Button bt_0,bt_1,bt_2,bt_3,bt_4,bt_5,bt_6,bt_7,bt_8,bt_9,bt_pt;

    Button bt_mul,bt_div,bt_add,bt_sub;

    Button bt_clr,bt_del,bt_eq;

    EditText et_input;

    boolean clr_flag; //判断et中是否清空

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    //实例化对象

    setContentView(R.layout.activity_main);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    et_input= (EditText) findViewById(R.id.et_input);

    //设置按钮的点击事件

    bt_0.setOnClickListener(this);

    bt_1.setOnClickListener(this);

    bt_2.setOnClickListener(this);

    bt_3.setOnClickListener(this);

    bt_4.setOnClickListener(this);

    bt_5.setOnClickListener(this);

    bt_6.setOnClickListener(this);

    bt_7.setOnClickListener(this);

    bt_8.setOnClickListener(this);

    bt_9.setOnClickListener(this);

    bt_pt.setOnClickListener(this);

    bt_add.setOnClickListener(this);

    bt_sub.setOnClickListener(this);

    bt_mul.setOnClickListener(this);

    bt_div.setOnClickListener(this);

    bt_clr.setOnClickListener(this);

    bt_del.setOnClickListener(this);

    bt_eq.setOnClickListener(this);

    }

    @Override

    public void onClick(View v) {

    String str=et_input.getText().toString();

    switch (v.getId()){

    case R.id.bt_0:

    case R.id.bt_1:

    case R.id.bt_2:

    case R.id.bt_3:

    case R.id.bt_4:

    case R.id.bt_5:

    case R.id.bt_6:

    case R.id.bt_7:

    case R.id.bt_8:

    case R.id.bt_9:

    case R.id.bt_pt:

    if(clr_flag){

    clr_flag=false;

    str="";

    et_input.setText("");

    }

    et_input.setText(str+((Button)v).getText());

    break;

    case R.id.bt_add:

    case R.id.bt_sub:

    case R.id.bt_mul:

    case R.id.bt_div:

    if(clr_flag){

    clr_flag=false;

    str="";

    et_input.setText("");

    }

    if(str.contains("+")||str.contains("-")||str.contains("×")||str.contains("÷")) {

    str=str.substring(0,str.indexOf(" "));

    }

    et_input.setText(str+" "+((Button)v).getText()+" ");

    break;

    case R.id.bt_clr:

    if(clr_flag)

    clr_flag=false;

    str="";

    et_input.setText("");

    break;

    case R.id.bt_del: //判断是否为空,然后在进行删除

    if(clr_flag){

    clr_flag=false;

    str="";

    et_input.setText("");

    }

    else if(str!=null&&!str.equals("")){

    et_input.setText(str.substring(0,str.length()-1));

    }

    break;

    case R.id.bt_eq: //单独运算最后结果

    getResult();

    break;

    }

    }

    private void getResult(){

    String exp=et_input.getText().toString();

    if(exp==null||exp.equals("")) return ;

    //因为没有运算符所以不用运算

    if(!exp.contains(" ")){

    return ;

    }

    if(clr_flag){

    clr_flag=false;

    return;

    }

    clr_flag=true;

    //截取运算符前面的字符串

    String s1=exp.substring(0,exp.indexOf(" "));

    //截取的运算符

    String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);

    //截取运算符后面的字符串

    String s2=exp.substring(exp.indexOf(" ")+3);

    double cnt=0;

    if(!s1.equals("")&&!s2.equals("")){

    double d1=Double.parseDouble(s1);

    double d2=Double.parseDouble(s2);

    if(op.equals("+")){

    cnt=d1+d2;

    }

    if(op.equals("-")){

    cnt=d1-d2;

    }

    if(op.equals("×")){

    cnt=d1*d2;

    }

    if(op.equals("÷")){

    if(d2==0) cnt=0;

    else cnt=d1/d2;

    }

    if(!s1.contains(".")&&!s2.contains(".")&&!op.equals("÷")) {

    int res = (int) cnt;

    et_input.setText(res+"");

    }else {

    et_input.setText(cnt+"");}

    }

    //s1不为空但s2为空

    else if(!s1.equals("")&&s2.equals("")){

    double d1=Double.parseDouble(s1);

    if(op.equals("+")){

    cnt=d1;

    }

    if(op.equals("-")){

    cnt=d1;

    }

    if(op.equals("×")){

    cnt=0;

    }

    if(op.equals("÷")){

    cnt=0;

    }

    if(!s1.contains(".")) {

    int res = (int) cnt;

    et_input.setText(res+"");

    }else {

    et_input.setText(cnt+"");}

    }

    //s1是空但s2不是空

    else if(s1.equals("")&&!s2.equals("")){

    double d2=Double.parseDouble(s2);

    if(op.equals("+")){

    cnt=d2;

    }

    if(op.equals("-")){

    cnt=0-d2;

    }

    if(op.equals("×")){

    cnt=0;

    }

    if(op.equals("÷")){

    cnt=0;

    }

    if(!s2.contains(".")) {

    int res = (int) cnt;

    et_input.setText(res+"");

    }else {

    et_input.setText(cnt+"");}

    }

    else {

    et_input.setText("");

    }

    }

    }

    关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

    更多相关内容
  • 计算器Android Studio上使用Kotlin的基本计算器。 该计算器解决了基本数学问题,例如加法,减法,乘法和除法。技术领域使用以下项目创建项目: Android Studio:1.8.0 Kotlin:1.4.30
  • 本课题要求学生完成一款计算器,从而了解基于android平台如何开发app应用,了解常见UI控件如何使用。 具体实现要求: Android计算器实现,支持加、减、乘、除、回退、清空等。 要求如下: 1、 支持加、减、乘、除、...
  • Android studio写的计算器小程序,可以实现简单的加减乘除。
  • import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView...

    这是网上查找的计算器代码,但是有错误,按等于号时会闪退。麻烦各位大佬们帮忙解决一下。(以下是java代码和报错截图)
    谢谢了各位大佬们。
    在这里插入图片描述

    package com.example.my;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    public class ActivityToTell extends AppCompatActivity implements View.OnClickListener{
        private TextView txt;
        private Button bt_0,bt_1,bt_2,bt_3,bt_4,bt_5,bt_6,
                bt_7,bt_8,bt_9,bt_jia,bt_j,bt_ch,bt_c,bt_d,bt_del,bt_di;
        String str = "";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_to_tell);
        txt = (EditText)findViewById(R.id.editText);
        bt_del = (Button)findViewById(R.id.bt_del);
        bt_d = (Button)findViewById(R.id.bt_d);
        bt_0 = (Button)findViewById(R.id.bt_0);
        bt_1 = (Button)findViewById(R.id.bt_1);
        bt_2 = (Button)findViewById(R.id.bt_2);
        bt_3 = (Button)findViewById(R.id.bt_3);
        bt_4 = (Button)findViewById(R.id.bt_4);
        bt_5 = (Button)findViewById(R.id.bt_5);
        bt_6 = (Button)findViewById(R.id.bt_6);
        bt_7 = (Button)findViewById(R.id.bt_7);
        bt_8 = (Button)findViewById(R.id.bt_8);
        bt_9 = (Button)findViewById(R.id.bt_9);
        bt_jia = (Button)findViewById(R.id.bt_jia);
        bt_j = (Button)findViewById(R.id.bt_j);
        bt_ch = (Button)findViewById(R.id.bt_ch);
        bt_c = (Button)findViewById(R.id.bt_c);
        bt_di = (Button)findViewById(R.id.bt_di);
    
        txt = (EditText)findViewById(R.id.editText);
    
            bt_del.setOnClickListener(this);
            bt_0.setOnClickListener(this);
            bt_1.setOnClickListener(this);
            bt_2.setOnClickListener(this);
            bt_3.setOnClickListener(this);
            bt_4.setOnClickListener(this);
            bt_5.setOnClickListener(this);
            bt_6.setOnClickListener(this);
            bt_7.setOnClickListener(this);
            bt_8.setOnClickListener(this);
            bt_9.setOnClickListener(this);
            bt_jia.setOnClickListener(this);
            bt_j.setOnClickListener(this);
            bt_ch.setOnClickListener(this);
            bt_c.setOnClickListener(this);
            bt_di.setOnClickListener(this);
            bt_d.setOnClickListener(new click());
    
        }
    public void onClick(View v)
    {
        String input = txt.getText().toString();
        switch(v.getId())
        {
            case R.id.bt_0:
            case R.id.bt_1:
            case R.id.bt_2:
            case R.id.bt_3:
            case R.id.bt_4:
            case R.id.bt_5:
            case R.id.bt_6:
            case R.id.bt_7:
            case R.id.bt_8:
            case R.id.bt_9:
            case R.id.bt_di:
    
                txt.setText(input+((Button)v).getText());
                break;
    
            case R.id.bt_jia:
            case R.id.bt_j:
            case R.id.bt_ch:
            case R.id.bt_c:
                txt.setText(input+""+((Button)v).getText()+"");
                break;
            case R.id.bt_del:
                txt.setText("");
                break;
            case R.id.bt_d:
                txt.setText("result");
                break;
        }
    }
        class click implements View.OnClickListener {
            public void onClick(View v)
            {
                getResult();
            }
    
            private void getResult()
            {
                String str1 = txt.getText().toString();
                if (str1 == null || str1.equals(""))
                {
                    return;
                }
                if (!str1.contains(""))
                {
                    return;
                }
                double result = 0;//第一个字符串
    
                String s1 = str1.substring(0,str1.indexOf(""));//运算符
                String op = str1.substring(str1.indexOf(" ")+1,str1.indexOf(" ")+2);//第二个字符串
                String s2 = str1.substring(str1.indexOf(" ")+3);
    
    
                    double d1 = Double.parseDouble(s1);
                    double d2 = Double.parseDouble(s2);
                    if (op.equals("+")) {
                        result = d1 + d2;
                    } else if (op.equals("-")) {
                        result = d1 - d2;
                    } else if (op.equals("*")) {
                        result = d1 * d2;
                    } else if (op.equals("/")) {
                        if (d2 == 0) {
                            result = 0;
                        } else {
                            result = d1 / d2;
                        }
                    }
                    txt.setText(str1 + "=" + result);
                    if (!s1.contains(".") && !s2.contains(".") && !op.equals("/")) {
                        int r = (int) result;
                        txt.setText(str1 + " = " + r);
                    }
    
            }
    
        }
    }
    
    展开全文
  • 主要为大家详细介绍了Android studio实现简单的计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本文实例为大家分享了android studio实现计算器的具体代码,供大家参考,具体内容如下 先来个效果图: 功能: 满足加减乘除四则运算规则,有回退、清除功能。 下面的代码只是完成基本功能,若添加背景图先看看下面...
  • Android Studio 开发,进行简单的连加、连减、连乘、连除功能
  • Android studio计算器.docx

    2020-05-08 15:57:25
    运用Android studio编辑的计算器小程序源代码,public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.cancel(); Uri uri=Uri.parse(...
  • 使用java语言,在Android studio平台上进行开发,实现加减乘除的运算功能和清屏的功能,首先设计一个可视化的界面,供用户输入数据并查看结果。用户通过点击相应按钮输入正确的表达式,计算器进行相应的加减乘除运算...
  • Android studio制作计算器代码

    万次阅读 多人点赞 2018-09-11 12:10:55
    一、Android studio制作计算器代码 这是我学Android 以来第一次制作计算器Android学起来说难也不难,说简单也不简单 制作简易的计算器需要掌握基本布局,监听器,以及使用哪些主题等 废话不多说,直接上代码...

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://mp.csdn.net/postedit/82623704

     

    一、Android studio制作计算器源代码

    这是我学Android 以来第一次制作计算器,Android学起来说难也不难,说简单也不简单

    制作简易的计算器需要掌握基本布局,监听器,以及使用哪些主题等

    废话不多说,直接上代码!

    以下是activity_main.xml代码

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <EditText
            android:id="@+id/et_input"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:paddingBottom="5dp"
            android:paddingRight="5dp"
            android:textSize="50sp" />
    
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:orientation="horizontal"
            android:gravity="center_horizontal">
    
            <Button
                android:id="@+id/btn_clr"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="C"
                android:textSize="30sp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"/>
    
            <Button
                android:id="@+id/btn_del"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="D"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp" />
    
            <Button
                android:id="@+id/btn_div"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="÷"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp" />
    
            <Button
                android:id="@+id/btn_mul"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="×"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            android:gravity="center_horizontal"
            >
            <Button
                android:id="@+id/btn_7"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="7"
                android:textSize="30sp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
            <Button
                android:id="@+id/btn_8"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="8"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
            <Button
                android:id="@+id/btn_9"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="9"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
            <Button
                android:id="@+id/btn_sub"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="-"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            android:gravity="center_horizontal"
            >
            <Button
                android:id="@+id/btn_4"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="4"
                android:textSize="30sp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
            <Button
                android:id="@+id/btn_5"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="5"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
            <Button
                android:id="@+id/btn_6"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="6"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
            <Button
                android:id="@+id/btn_add"
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="+"
                android:textSize="30sp"
                android:layout_marginLeft="10dp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="10dp"
            android:gravity="center_horizontal">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                >
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    >
                    <Button
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:id="@+id/btn_1"
                        android:text="1"
                        android:textSize="30sp"
                        android:paddingRight="15sp"
                        android:paddingBottom="15sp"
                        />
                    <Button
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:id="@+id/btn_2"
                        android:text="2"
                        android:textSize="30sp"
                        android:layout_marginLeft="10dp"
                        android:paddingRight="15sp"
                        android:paddingBottom="15sp"
                        />
                    <Button
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:id="@+id/btn_3"
                        android:text="3"
                        android:textSize="30sp"
                        android:layout_marginLeft="10dp"
                        android:paddingRight="15sp"
                        android:paddingBottom="15sp"
                        />
                </LinearLayout>
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_marginTop="10dp">
                    <Button
                        android:layout_width="170dp"
                        android:layout_height="80dp"
                        android:id="@+id/btn_0"
                        android:text="0"
                        android:textSize="30sp"
                        android:paddingRight="15sp"
                        android:paddingBottom="15sp"
                        />
                    <Button
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:id="@+id/btn_pt"
                        android:text="."
                        android:textSize="30sp"
                        android:layout_marginLeft="10dp"
                        android:paddingRight="15sp"
                        android:paddingBottom="15sp"
                        />
                </LinearLayout>
    
            </LinearLayout>
    
            <Button
                android:id="@+id/btn_eq"
                android:layout_width="80dp"
                android:layout_height="170dp"
                android:layout_marginLeft="10dp"
                android:text="="
                android:textSize="30sp"
                android:paddingRight="15sp"
                android:paddingBottom="15sp" />
    
        </LinearLayout>
    
    </LinearLayout>

    完成以上代码,你就会看到这样一个效果图

    效果如下

    如果你觉得这个计算器有点不好看,可以在按钮里面给元素添加颜色

    完成简易计算器布局之后就给按钮添加点击事件以及按钮效果

     

    以下是MainActivity.java代码

    package com.example.a0909_homework_04;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        //创建Button对象   也就是activity_main.xml里所设置的ID
        Button btn_0,btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9,btn_pt;
        Button btn_mul,btn_div,btn_add,btn_sub;
        Button btn_clr,btn_del,btn_eq;
        EditText et_input;
        boolean clr_flag;    //判断et编辑文本框中是否清空
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //实例化对象
            setContentView(R.layout.activity_main);
            btn_0= (Button) findViewById(R.id.btn_0);
            btn_1= (Button) findViewById(R.id.btn_1);
            btn_2= (Button) findViewById(R.id.btn_2);
            btn_3= (Button) findViewById(R.id.btn_3);
            btn_4= (Button) findViewById(R.id.btn_4);
            btn_5= (Button) findViewById(R.id.btn_5);
            btn_6= (Button) findViewById(R.id.btn_6);
            btn_7= (Button) findViewById(R.id.btn_7);
            btn_8= (Button) findViewById(R.id.btn_8);
            btn_9= (Button) findViewById(R.id.btn_9);
            btn_pt= (Button) findViewById(R.id.btn_pt);
            btn_add= (Button) findViewById(R.id.btn_add);
            btn_sub= (Button) findViewById(R.id.btn_sub);
            btn_mul= (Button) findViewById(R.id.btn_mul);
            btn_div= (Button) findViewById(R.id.btn_div);
            btn_clr= (Button) findViewById(R.id.btn_clr);
            btn_del= (Button) findViewById(R.id.btn_del);
            btn_eq= (Button) findViewById(R.id.btn_eq);
            et_input= (EditText) findViewById(R.id.et_input);
    
            //给按钮设置的点击事件
            btn_0.setOnClickListener(this);
            btn_1.setOnClickListener(this);
            btn_2.setOnClickListener(this);
            btn_3.setOnClickListener(this);
            btn_4.setOnClickListener(this);
            btn_5.setOnClickListener(this);
            btn_6.setOnClickListener(this);
            btn_7.setOnClickListener(this);
            btn_8.setOnClickListener(this);
            btn_9.setOnClickListener(this);
            btn_pt.setOnClickListener(this);
            btn_add.setOnClickListener(this);
            btn_sub.setOnClickListener(this);
            btn_mul.setOnClickListener(this);
            btn_div.setOnClickListener(this);
            btn_clr.setOnClickListener(this);
            btn_del.setOnClickListener(this);
            btn_eq.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            String str=et_input.getText().toString();
            switch (v.getId()){
                case   R.id.btn_0:
                case   R.id.btn_1:
                case   R.id.btn_2:
                case   R.id.btn_3:
                case   R.id.btn_4:
                case   R.id.btn_5:
                case   R.id.btn_6:
                case   R.id.btn_7:
                case   R.id.btn_8:
                case   R.id.btn_9:
                case   R.id.btn_pt:
                    if(clr_flag){
                        clr_flag=false;
                        str="";
                        et_input.setText("");
                    }
                    et_input.setText(str+((Button)v).getText());
                    break;
                case R.id.btn_add:
                case R.id.btn_sub:
                case R.id.btn_mul:
                case R.id.btn_div:
                    if(clr_flag){
                        clr_flag=false;
                        str="";
                        et_input.setText("");
                    }
                    if(str.contains("+")||str.contains("-")||str.contains("×")||str.contains("÷")) {
                        str=str.substring(0,str.indexOf(" "));
                    }
                    et_input.setText(str+" "+((Button)v).getText()+" ");
                    break;
                case R.id.btn_clr:
                    if(clr_flag)
                        clr_flag=false;
                    str="";
                    et_input.setText("");
                    break;
                case R.id.btn_del: //判断是否为空,然后在进行删除
                    if(clr_flag){
                        clr_flag=false;
                        str="";
                        et_input.setText("");
                    }
                    else if(str!=null&&!str.equals("")){
                        et_input.setText(str.substring(0,str.length()-1));
                    }
                    break;
                case R.id.btn_eq: //单独运算最后结果
                    getResult();//调用下面的方法
                    break;
            }
        }
    
        private void getResult() {
            String exp=et_input.getText().toString();
            if(exp==null||exp.equals("")) return ;
            //因为没有运算符所以不用运算
            if(!exp.contains(" ")){
                return ;
            }
            if(clr_flag){
                clr_flag=false;
                return;
            }
            clr_flag=true;
            //截取运算符前面的字符串
            String s1=exp.substring(0,exp.indexOf(" "));
            //截取的运算符
            String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);
            //截取运算符后面的字符串
            String s2=exp.substring(exp.indexOf(" ")+3);
            double cnt=0;
            if(!s1.equals("")&&!s2.equals("")){
                double d1=Double.parseDouble(s1);
                double d2=Double.parseDouble(s2);
                if(op.equals("+")){
                    cnt=d1+d2;
                }
                if(op.equals("-")){
                    cnt=d1-d2;
                }
                if(op.equals("×")){
                    cnt=d1*d2;
                }
                if(op.equals("÷")){
                    if(d2==0) cnt=0;
                    else cnt=d1/d2;
                }
                if(!s1.contains(".")&&!s2.contains(".")&&!op.equals("÷")) {
                    int res = (int) cnt;
                    et_input.setText(res+"");
                }else {
                    et_input.setText(cnt+"");}
            }
            //如果s1是空    s2不是空  就执行下一步
            else if(!s1.equals("")&&s2.equals("")){
                double d1=Double.parseDouble(s1);
                if(op.equals("+")){
                    cnt=d1;
                }
                if(op.equals("-")){
                    cnt=d1;
                }
                if(op.equals("×")){
                    cnt=0;
                }
                if(op.equals("÷")){
                    cnt=0;
                }
                if(!s1.contains(".")) {
                    int res = (int) cnt;
                    et_input.setText(res+"");
                }else {
                    et_input.setText(cnt+"");}
            }
            //如果s1是空    s2不是空  就执行下一步
            else if(s1.equals("")&&!s2.equals("")){
                double d2=Double.parseDouble(s2);
                if(op.equals("+")){
                    cnt=d2;
                }
                if(op.equals("-")){
                    cnt=0-d2;
                }
                if(op.equals("×")){
                    cnt=0;
                }
                if(op.equals("÷")){
                    cnt=0;
                }
                if(!s2.contains(".")) {
                    int res = (int) cnt;
                    et_input.setText(res+"");
                }else {
                    et_input.setText(cnt+"");}
            }
            else {
                et_input.setText("");
            }
        }
    }
    

    以上代码写好,简易的计算器就完成了!!!

     

     

    展开全文
  • Android studio实现简单计算器

    千次阅读 2021-06-02 16:54:04
    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下需求分析在Android studio中设计并实现一个简单的计算器,实现连续的加减乘除运算。界面设计采用网格GridLayout布局,设计了...

    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下

    需求分析

    在Android studio中设计并实现一个简单的计算器,实现连续的加减乘除运算。

    界面设计

    采用网格GridLayout布局,设计了一个6行4列的网格,最上边是一个EditText用来显示用户输入的运算数字和运算符,以及相关的运算结果,其占4列,文本框大小为50dip;依次往下的界面分别设置了数字和运算符以及操作的按钮,各行各列的每个按钮的大小均设为26sp。

    编程分析

    设计了两个文件:1、控制文件MainActivity.java,完成按钮的处理事件以及实现加减乘除及其结果输出的功能,主要包括:显示activity_main.xml定义的用户界面;与用户界面程序中的组件建立关联,并分别为每个组件注册并实现监听接口;根据具体输入和条件进行运算并显示结果等。2、布局文件activity_main.xml,完成计算器界面的网格布局设计,包括了一个文本编辑框和18个按钮。

    具体进度

    第1天:对简单计算器进行系统的功能和界面分析,形成自己大致的设计想法,然后根据老师建议的书本程序以及自己上网搜索的安卓项目的编程,系统地总结出自己编程的过程以及开始理解各类代码。由于对移动编程这门课还不是很熟悉,所以对其中编程部分的理解为自己往后调试程序有很大的帮助。

    第2天:开始敲代码。由于第一次在Android studio上面编程,对这个软件的各项操作都不熟悉,所以刚开始就在软件摸索上面花费了较多的时间。由于此次设计的界面老师给了我们书本的模板,所以我选择从简单的布局文件的设计开始编程,一方面也方便自己熟悉Android studio。

    第3天:开始根据自己的理解和想法开始设计并调试控制文件的程序。由于这部分设计到多种函数以及接口的设计以及实现,运用的是java,由于对过去学的java语言有些遗忘了,而且现在还要涉及关于新知识.xml的结合,所以在这部分花的时间比较长。期间出现了较多的bug,虽然调试起来很吃力,但最终一点点把程序调试成功还是挺开心的。

    第4天:原本以为程序调试成功就好了,但是没想到最后在AVD的各种选择和配置、调用问题上花了更多的时间和精力。由于第一次接触Android studio,所以对其中很多配置都不了解,也是第一次听说AVD,在最终运行这个计算器APP的时候在AVD的选择和配置失败上卡了较长时间,通过百度以及请教同学,一步步地终于把最后这一步做好了。至此便完成了自己第一个简单APP的开发。

    心得体会

    这是我的第一个安卓项目开发,这个计算器代码的逻辑都比较简单,然后其功能也很不完善,是一个比较粗糙的设计。即便如此,由于自己对Android studio应用程序设计的知识掌握得也不是很好,编程能力也比较弱,所以还是花了比较多的时间去研究和体会。但是,也正因为期间遇到的很多困难和bug,在自己一点点去设法解决的过程中也对这门课程的理论知识以及相关操作都有了更清晰的了解,现在明白了其中和大致框架和原理,为往后深入的学习和编程做好多一点基础巩固。

    fffaab0e45b88e15cea88b1921900853.png

    控制文件MainActivity.java

    package com.example.df.firstapp;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button; //引用按钮组件

    import android.widget.EditText; //引用文本编辑框组件

    import android.text.TextUtils; //TextUtils类用于处理字符串

    //定义实现监听接口的类MainActivity

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    //声明17个按钮和一个文本编辑框

    Button bt_num0,bt_num1,bt_num2,bt_num3,bt_num4,bt_num5,bt_num6,bt_num7,

    bt_num8,bt_num9,bt_delete,bt_div,bt_mult,bt_minus,bt_plus,bt_equal,bt_dot,bt_clear;

    private EditText et_calc;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main); //显示activity_main.xml定义的用户界面

    initViewAndListener(); //调用函数initViewAndListener()

    }

    //定义函数initViewAndListener(),用于与用户界面程序中的组件建立关联,并分别注册监听接口

    private void initViewAndListener() {

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

    bt_num0.setOnClickListener(this);

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

    bt_num1.setOnClickListener(this);

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

    bt_num2.setOnClickListener(this);

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

    bt_num3.setOnClickListener(this);

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

    bt_num4.setOnClickListener(this);

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

    bt_num5.setOnClickListener(this);

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

    bt_num6.setOnClickListener(this);

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

    bt_num7.setOnClickListener(this);

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

    bt_num8.setOnClickListener(this);

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

    bt_num9.setOnClickListener(this);

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

    bt_delete.setOnClickListener(this);

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

    bt_div.setOnClickListener(this);

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

    bt_mult.setOnClickListener(this);

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

    bt_minus.setOnClickListener(this);

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

    bt_plus.setOnClickListener(this);

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

    bt_equal.setOnClickListener(this);

    et_calc = (EditText)findViewById(R.id.et_calc);

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

    bt_dot.setOnClickListener(this);

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

    bt_clear.setOnClickListener(this);

    }

    private boolean lastIsOperator; //记录当前是否进行计算操作

    private String lastOperators = ""; //记录上一次进行计算操作的结果

    private double firstNumber = 0D; //定义并初始化第一次的取值

    private double sencondNumber = 0D; //定义并初始化第二次的取值

    //onClick()方法,触发OnClickListener接口

    public void onClick(View v) {

    String currentText = et_calc.getText().toString(); //获取当前文本编辑框的内容

    String operatorNumber = ""; //定义并初始化操作数为””

    if (currentText.equals("0")) { //若当前输入数为0则设置文本编辑框为””

    et_calc.setText("");

    }

    operatorNumber = et_calc.getText().toString(); //根据编辑框的内容更改操作数值

    if(!lastOperators.equals("")) //判断上一次操作的数是否为空,非空则建立索引,随之修改当前操作数

    {

    int index = operatorNumber.lastIndexOf(lastOperators);

    operatorNumber = operatorNumber.substring(index+1);

    }

    //分别获取按钮的内容至文本编辑框

    switch (v.getId()) {

    case R.id.bt_num0:

    et_calc.setText(et_calc.getText() + "0");

    lastIsOperator = false;

    break;

    case R.id.bt_num1:

    et_calc.setText(et_calc.getText() + "1");

    lastIsOperator = false;

    break;

    case R.id.bt_num2:

    et_calc.setText(et_calc.getText() + "2");

    lastIsOperator = false;

    break;

    case R.id.bt_num3:

    et_calc.setText(et_calc.getText() + "3");

    lastIsOperator = false;

    break;

    case R.id.bt_num4:

    et_calc.setText(et_calc.getText() + "4");

    lastIsOperator = false;

    break;

    case R.id.bt_num5:

    et_calc.setText(et_calc.getText() + "5");

    lastIsOperator = false;

    break;

    case R.id.bt_num6:

    et_calc.setText(et_calc.getText() + "6");

    lastIsOperator = false;

    break;

    case R.id.bt_num7:

    et_calc.setText(et_calc.getText() + "7");

    lastIsOperator = false;

    break;

    case R.id.bt_num8:

    et_calc.setText(et_calc.getText() + "8");

    lastIsOperator = false;

    break;

    case R.id.bt_num9:

    et_calc.setText(et_calc.getText() + "9");

    lastIsOperator = false;

    break;

    case R.id.bt_dot:

    et_calc.setText(et_calc.getText() + ".");

    lastIsOperator = false;

    break;

    //归零按钮,将当前操作数直接清零

    case R.id.bt_clear:

    et_calc.setText("");

    lastIsOperator = false;

    firstNumber=0D;

    sencondNumber=0D;

    lastOperators="=";

    break;

    //清除按钮,若当前文本编辑框内容为空,点击一次则删除一个字符串

    case R.id.bt_delete:

    if (TextUtils.isEmpty(et_calc.getText())) {

    return;

    }

    lastIsOperator = false;

    et_calc.setText(currentText.substring(0, currentText.length() - 1).length() > 0 ? currentText.substring(0, currentText.length() - 1) : "0");

    break;

    //计算按钮,若当前内容非空、或者以及上一次有操作记录且记录不是”=”的情况下,将当前的操作记录设置为+、-、*、/、=

    case R.id.bt_div:

    if ((TextUtils.isEmpty(et_calc.getText())

    || lastIsOperator) && !lastOperators.equals("=")) {

    return;

    }

    opratorCalc(operatorNumber,"÷");

    lastIsOperator = true;

    et_calc.setText(et_calc.getText() + "÷");

    lastOperators = "÷";

    break;

    case R.id.bt_mult:

    if ((TextUtils.isEmpty(et_calc.getText())

    || lastIsOperator) && !lastOperators.equals("=")) {

    return;

    }

    opratorCalc(operatorNumber,"*");

    lastIsOperator = true;

    et_calc.setText(et_calc.getText() + "*");

    lastOperators = "*";

    break;

    case R.id.bt_minus:

    if ((TextUtils.isEmpty(et_calc.getText())

    || lastIsOperator) && !lastOperators.equals("=")) {

    return;

    }

    opratorCalc(operatorNumber,"-");

    lastIsOperator = true;

    et_calc.setText(et_calc.getText() + "-");

    lastOperators = "-";

    break;

    case R.id.bt_plus:

    if ((TextUtils.isEmpty(et_calc.getText())

    || lastIsOperator) && !lastOperators.equals("=")) {

    return;

    }

    opratorCalc(operatorNumber,"+");

    lastIsOperator = true;

    et_calc.setText(et_calc.getText() + "+");

    lastOperators = "+";

    break;

    case R.id.bt_equal:

    double result = 0D;

    if(TextUtils.isEmpty(lastOperators))

    {

    return;

    }

    opratorResult(operatorNumber);

    sencondNumber = 0D;

    lastOperators ="=";

    lastIsOperator = true;

    et_calc.setText(et_calc.getText() + "\n=" + String.valueOf(firstNumber));

    break;

    }

    }

    //运算函数,按具体操作进行+、-、*、/的运算

    private void operate(String operatorNumber)

    {

    if(sencondNumber != 0D) //计算情况一:第二次输入的数不为0

    {

    if(lastOperators.equals("÷"))

    {

    sencondNumber = sencondNumber / Double.parseDouble(operatorNumber);

    firstNumber = firstNumber / sencondNumber;

    }

    else if(lastOperators.equals("*"))

    {

    sencondNumber = sencondNumber * Double.parseDouble(operatorNumber);

    firstNumber = firstNumber * sencondNumber;

    }

    else if(lastOperators.equals("+"))

    {

    sencondNumber = Double.parseDouble(operatorNumber);

    firstNumber = firstNumber + sencondNumber;

    }

    else if(lastOperators.equals("-"))

    {

    sencondNumber = Double.parseDouble(operatorNumber);

    firstNumber = firstNumber - sencondNumber;

    }

    }

    Else //计算情况二:第二次输入的数为0

    {

    if(lastOperators.equals("÷"))

    {

    firstNumber = firstNumber / Double.parseDouble(operatorNumber);

    }

    else if(lastOperators.equals("*"))

    {

    firstNumber = firstNumber * Double.parseDouble(operatorNumber);

    }

    else if(lastOperators.equals("+"))

    {

    firstNumber = firstNumber + Double.parseDouble(operatorNumber);

    }

    else if(lastOperators.equals("-"))

    {

    firstNumber= firstNumber - Double.parseDouble(operatorNumber);

    }

    }

    }

    //分别返回计算结果

    public void opratorResult(String operatorNumber)

    {

    operate(operatorNumber);

    }

    //按当前计算结果进行下一次的数据输入及计算

    public void opratorCalc(String operatorNumber,String currentOprator)

    {

    if(TextUtils.isEmpty(lastOperators))

    {

    firstNumber = Double.parseDouble(operatorNumber);

    return;

    }

    if(lastOperators.equals(currentOprator))

    {

    if(lastOperators.equals("÷"))

    {

    firstNumber = firstNumber / Double.parseDouble(operatorNumber);

    }

    else if(lastOperators.equals("*"))

    {

    firstNumber = firstNumber * Double.parseDouble(operatorNumber);

    }

    else if(lastOperators.equals("+"))

    {

    firstNumber = firstNumber + Double.parseDouble(operatorNumber);

    }

    else if(lastOperators.equals("-"))

    {

    firstNumber = firstNumber - Double.parseDouble(operatorNumber);

    }

    return;

    }

    operate(operatorNumber);

    }

    }

    布局文件activity_main.xml

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

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:columnCount="4" //设置了一个4列6行的网格

    android:rowCount="6"

    tools:context=".MainActivity">

    android:id="@+id/et_calc"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:layout_columnSpan="4" //该组件占据4列的位置

    android:layout_marginLeft="4px"

    android:gravity="left"

    android:layout_row="0"

    android:background="#eee"

    android:textSize="50dip"/>

    android:id="@+id/bt_delete"

    android:layout_column="3"

    android:layout_row="1"

    android:text="清除"

    android:textSize="26sp"/>

    android:id="@+id/bt_clear"

    android:layout_column="0"

    android:layout_row="1"

    android:text="归零"

    android:textSize="26sp"/>

    android:id="@+id/bt_num1"

    android:layout_column="0"

    android:layout_row="2"

    android:text="1"

    android:textSize="26sp"/>

    android:id="@+id/bt_num2"

    android:layout_column="1"

    android:layout_row="2"

    android:text="2"

    android:textSize="26sp"/>

    android:id="@+id/bt_num3"

    android:layout_column="2"

    android:layout_row="2"

    android:text="3"

    android:textSize="26sp"/>

    android:id="@+id/bt_plus"

    android:layout_column="3"

    android:layout_row="2"

    android:text="+"

    android:textSize="26sp"/>

    android:id="@+id/bt_num4"

    android:layout_column="0"

    android:layout_row="3"

    android:text="4"

    android:textSize="26sp" />

    android:id="@+id/bt_num5"

    android:layout_column="1"

    android:layout_row="3"

    android:text="5"

    android:textSize="26sp"/>

    android:id="@+id/bt_num6"

    android:layout_column="2"

    android:layout_row="3"

    android:text="6"

    android:textSize="26sp"/>

    android:id="@+id/bt_minus"

    android:layout_column="3"

    android:layout_row="3"

    android:text="-"

    android:textSize="26sp" />

    android:id="@+id/bt_num7"

    android:layout_column="0"

    android:layout_row="4"

    android:text="7"

    android:textSize="26sp"/>

    android:id="@+id/bt_num8"

    android:layout_column="1"

    android:layout_row="4"

    android:text="8"

    android:textSize="26sp"/>

    android:id="@+id/bt_num9"

    android:layout_column="2"

    android:layout_row="4"

    android:text="9"

    android:textSize="26sp" />

    android:id="@+id/bt_mult"

    android:layout_column="3"

    android:layout_row="4"

    android:text="*"

    android:textSize="26sp" />

    android:id="@+id/bt_dot"

    android:layout_column="0"

    android:layout_row="5"

    android:text="."

    android:textSize="26sp" />

    android:id="@+id/bt_num0"

    android:layout_column="1"

    android:layout_row="5"

    android:text="0"

    android:textSize="26sp" />

    android:id="@+id/bt_equal"

    android:layout_column="2"

    android:layout_row="5"

    android:text="="

    android:textSize="26sp" />

    android:id="@+id/bt_div"

    android:layout_column="3"

    android:layout_row="5"

    android:text="/"

    android:textSize="26sp" />

    关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 主要为大家详细介绍了android studio实现简单计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 这是自己开发的Android代码简易计算器,需要的朋友直接拿走
  • android-studio-calculator-app-code android studio计算器应用程序源代码
  • Android Studio实现简单计算器功能

    千次阅读 2021-06-05 07:21:29
    本文实例为大家分享了Android Studio实现简单计算器功能的具体代码,供大家参考,具体内容如下程序步骤:(1)在布局文件定义一些计算器界面的文本框,按钮等组件。(2)在Activity中获取组件实例。(3)通过swtich函数,...
  • AndroidStudio计算器

    2021-06-04 12:48:00
    activity_main.xmlxmlns:app=...android:id="@+id/button1"android:layout_width="wrap_content"android:layout_height=...
  • 主要为大家详细介绍了Android Studio实现简易计算器,表格布局TableLayout,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本文实例为大家分享了android studio实现计算器的具体代码,供大家参考,具体内容如下 效果图: 资源文件: color.xml <?xml version=1.0 encoding=utf-8?> <color name=colorPrimary>#3F51B5 ...
  • 使用Android Studio实现简单的计算器(已亲自实验通过)

    万次阅读 多人点赞 2020-06-18 10:02:15
    使用Android Studio实现简单的计算器(已亲自实验通过) 实验内容 用多个Activity实现分别实现加、减、乘、除的计算器,具体包括:通过一个启动Activity布置4个按钮,每个按钮分别触发加、减、乘、除的Activity;然后...
  • Android Studio实现计算器功能

    千次阅读 2021-11-04 15:25:32
    实验一:做一个简单的计算器 1.创建布局文件Activity_main.xml 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
  • public class MainActivity extends AppCompatActivity { private Button button1, button2, button3, button_div, button_7, button_8, button_9, button_mul, button_4, button_5, button_6, button_sub, button...
  • 安卓AndroidStudio实现计算器

    千次阅读 多人点赞 2019-03-16 15:38:29
    基于AndroidStudio,实现一个简易的计算器(界面+简单的计算)。 下图是整体界面: 二、思路 首先设计界面,activity_main.xml 计算器界面,需要:文本框TextView——显示数字;数字、符号按钮Button <?...
  • 利用Android Studio 4.2.1实现的简单房贷计算器
  • Android studio 实现简易计算器App并实现加减乘除功能 结果 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,717
精华内容 686
关键字:

androidstudio计算器代码