Android简易计算器的制作(源码)(两种方法)

方法一:

jisuanqi.java(activity):

package com.example.myapplication_one;

import android.app.AlertDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.*;

public class jisuanqi extends AppCompatActivity {

    private Spinner spinner;
    private EditText editNum1;
    private EditText editNum2;
    private TextView result;
    private Button button;
    private String[] huansaun = {"+","-","×","÷"};
    String flag;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jisuanqi);

        spinner = findViewById(R.id.spinner);
        editNum1 =  findViewById(R.id.edt_test1);
        editNum2 =  findViewById(R.id.edt_test2);
        button =  findViewById(R.id.button1);
        result = findViewById(R.id.tv);

        ArrayAdapter<String> huansuan_adapter = new ArrayAdapter<String>(
                this,android.R.layout.simple_spinner_dropdown_item,huansaun
        );
        spinner.setAdapter(huansuan_adapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                flag = spinner.getSelectedItem().toString();
                //Log.e("Dawangba", String.valueOf(position));
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (flag.equals("+")){
                    AddListener addListener = new AddListener();
                    addListener.onClick(v);
                }

                if (flag.equals("-")){
                    SubListener subListener = new SubListener();
                    subListener.onClick(v);
                }
                if (flag.equals("×")){
                    MulListener mulListener = new MulListener();
                    mulListener.onClick(v);
                }
                if (flag.equals("÷")){
                    DivListener divListener = new DivListener();
                    divListener.onClick(v);
                }
            }
        });
    }

    private void showDialog(){
        AlertDialog.Builder dialog = new AlertDialog.Builder(this);
        dialog.setTitle("错误");
        dialog.setMessage("输入数字无效!");
        dialog.setPositiveButton("确定",null);
        dialog.show();
    }

    //加法操作
    private class AddListener implements View.OnClickListener {

        public void onClick(View v) {

            if (TextUtils.isEmpty(editNum1.getText().toString()) || TextUtils.isEmpty(editNum2.getText().toString())){
                showDialog();
            } else {
                float number1 = Float.parseFloat((editNum1.getText().toString()));
                float number2 = Float.parseFloat((editNum2.getText().toString()));
                result.setText(number1 + number2 + "");
            }
        }
    }

    //减法操作
    private class SubListener implements View.OnClickListener {
        public void onClick(View v) {
            if (TextUtils.isEmpty(editNum1.getText().toString()) || TextUtils.isEmpty(editNum2.getText().toString())){
                showDialog();
            } else {
                float number1 = Float.parseFloat((editNum1.getText().toString()));
                float number2 = Float.parseFloat((editNum2.getText().toString()));
                result.setText(number1 - number2 + "");
            }
        }
    }
    //乘法操作
    private class MulListener implements View.OnClickListener {
        public void onClick(View v) {
            if (TextUtils.isEmpty(editNum1.getText().toString()) || TextUtils.isEmpty(editNum2.getText().toString())){
                showDialog();
            } else {
                float number1 = Float.parseFloat((editNum1.getText().toString()));
                float number2 = Float.parseFloat((editNum2.getText().toString()));
                result.setText(number1 * number2 + "");
            }
        }
    }
    //除法操作
    private class DivListener implements View.OnClickListener {
        public void onClick(View v) {
            if (TextUtils.isEmpty(editNum1.getText().toString()) || TextUtils.isEmpty(editNum2.getText().toString())){
                showDialog();
            } else {
                float number1 = Float.parseFloat((editNum1.getText().toString()));
                float number2 = Float.parseFloat((editNum2.getText().toString()));
                if (number2 == 0){
                    showDialog();
                } else {
                    result.setText(number1 / number2 + "");
                }
            }
        }
    }
}

jisuanqi.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" >
    <EditText
        android:id="@+id/edt_test1"
        android:layout_width="60dip"
        android:layout_height="50dip"
        android:ems="10"
        android:inputType="number"
        android:textColor="#88e355"
        android:textSize="20sp" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="100dip"
        android:layout_height="40dip"/>

    <EditText
        android:id="@+id/edt_test2"
        android:layout_width="60dip"
        android:layout_height="40dip"
        android:ems="10"
        android:inputType="number"
        android:textColor="#88e355"
        android:textSize="20sp" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="="
        android:layout_marginLeft="20dp"/>

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />

</LinearLayout>

运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法二:

jiusuanji2.java(activity):

package com.example.myapplication_one;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;

public class jisuanqi2 extends Activity {
    Spinner spinner;
    EditText editText1,editText2,editText3;
    Button button;
    String []strings=new String[]{"+","-","*","/"};
    String item="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jisuanqi2);
        init();
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(jisuanqi2.this, android.R.layout.simple_spinner_item,strings);
        spinner.setAdapter(adapter);
        spinner.setPrompt("所选择的符号:");//设置标题文字
        spinner.setSelection(2);//设置当前选中选项
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(jisuanqi2.this,"您选择的符号为:"+strings[i],Toast.LENGTH_SHORT).show();
                item=strings[i];
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                Toast.makeText(jisuanqi2.this,"请选中您的符号!",Toast.LENGTH_LONG).show();
            }
        });
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                double a=Double.valueOf(String.valueOf(editText1.getText()));
                double b=Integer.valueOf(String.valueOf(editText2.getText()));
                double c=0;

                switch (item){
                    case "+":
                        c=a+b;
                        break;
                    case "-":
                        c=a-b;
                        break;
                    case "*":
                        c=a*b;
                        break;
                    case "/":
                        c=a/b;
                        break;
                }
                editText3.setText(String.valueOf(c));
            }
        });
    }
    private void init(){
        spinner =findViewById(R.id.spinner);
        button =findViewById(R.id.button);
        editText1=findViewById(R.id.editText1);
        editText2=findViewById(R.id.editText2);
        editText3=findViewById(R.id.editText3);
    }

}



jisuanji2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="121dp"
        android:layout_marginTop="76dp"
        android:text="超简易计算器"
        android:textSize="20dp"
        />
    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="84dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="184dp" />


    <EditText
        android:id="@+id/editText1"
        android:layout_width="74dp"
        android:layout_height="34dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="174dp"
        android:layout_marginEnd="153dp"
        android:ems="10"
        android:hint="请输入数字"
        android:inputType="textPersonName"
        android:textSize="10dp" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="61dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="139dp"
        android:layout_marginTop="173dp"
        android:ems="10"
        android:hint="请输入数字"
        android:inputType="textPersonName"
        android:textSize="10dp" />

    <Button
        android:id="@+id/button"
        android:layout_width="40dp"
        android:layout_height="29dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="207dp"
        android:layout_marginTop="178dp"
        android:layout_marginEnd="164dp"
        android:text="="
        android:textSize="10dp"
        />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="72dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="258dp"
        android:layout_marginTop="170dp"
        android:ems="10"
        android:inputType="text"
        android:textSize="10dp" />


</RelativeLayout>

结果:

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱睡觉的小馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值