步骤:
1.新建项目

2.选择


找到项目的res的下面layout里面的activity.xml文件进行约束布局界面构建。
activity.xml代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <androidx.constraintlayout.widget.ConstraintLayout 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"
- tools:context=".MainActivity">
-
- <GridLayout
- android:id="@+id/gridLayout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- tools:ignore="MissingConstraints">
-
- <EditText
- android:id="@+id/ed_input"
- android:layout_width="match_parent"
- android:layout_height="100dp"
- android:hint="输入框" />
-
- <EditText
- android:id="@+id/ed_output"
- android:layout_width="match_parent"
- android:layout_height="100dp"
- android:hint="输出口" />
- </GridLayout>
-
- <GridLayout
- android:layout_width="424dp"
- android:layout_height="329dp"
- android:columnCount="4"
- android:rowCount="4"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/gridLayout"
- tools:ignore="MissingConstraints">
-
- <Button
- android:id="@+id/buttonc"
- android:layout_width="180dp"
- android:layout_height="60dp"
- android:layout_columnSpan="2"
- android:backgroundTint="#a6a6a6"
- android:text="c" />
-
- <Button
- android:id="@+id/buttondel"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:layout_columnSpan="1"
- android:backgroundTint="#a6a6a6"
- android:text="DEL" />
-
- <Button
- android:id="@+id/buttonchu"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#ff9500"
- android:text="/" />
-
- <Button
- android:id="@+id/button7"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="7" />
-
- <Button
- android:id="@+id/button8"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="8" />
-
- <Button
- android:id="@+id/button9"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="9" />
-
- <Button
- android:id="@+id/buttoncheng"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#ff9500"
- android:text="*" />
-
- <Button
- android:id="@+id/button4"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="4" />
-
- <Button
- android:id="@+id/button5"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="5" />
-
- <Button
- android:id="@+id/button6"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="6" />
-
- <Button
- android:id="@+id/buttonjian"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#ff9500"
- android:text="-" />
-
- <Button
- android:id="@+id/button1"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="1" />
-
- <Button
- android:id="@+id/button2"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="2" />
-
- <Button
- android:id="@+id/button3"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="3" />
-
- <Button
- android:id="@+id/buttonjia"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#ff9500"
- android:text="+" />
-
- <Button
- android:id="@+id/buttonyuliu"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="预留" />
-
- <Button
- android:id="@+id/button0"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="0" />
-
- <Button
- android:id="@+id/buttondian"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#333333"
- android:text="." />
-
- <Button
- android:id="@+id/buttondeng"
- android:layout_width="90dp"
- android:layout_height="60dp"
- android:backgroundTint="#ff9500"
- android:text="=" />
-
-
- </GridLayout>
-
- </androidx.constraintlayout.widget.ConstraintLayout>
找到Java里面的MainActiviy.java写入实现代码。
MainActiviy.java代码如下:
- package com.example.myapplication2;
-
- import androidx.appcompat.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{
-
- private Button mbutton1,mbutton2,mbutton3,mbutton4,mbutton5,mbutton6,mbutton7,mbutton8,mbutton9,mbutton0,
- mbuttonc,mbuttondel,mbuttonyuliu,mbuttonjia,mbuttonjian,
- mbuttoncheng,mbuttonchu,mbuttondian,mbuttondeng;
- private EditText edinput,edoutput;
- private boolean deng_flag=false;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //数字0-9
- mbutton1=findViewById(R.id.button1);
- mbutton2=findViewById(R.id.button2);
- mbutton3=findViewById(R.id.button3);
- mbutton4=findViewById(R.id.button4);
- mbutton5=findViewById(R.id.button5);
- mbutton6=findViewById(R.id.button6);
- mbutton7=findViewById(R.id.button7);
- mbutton8=findViewById(R.id.button8);
- mbutton9=findViewById(R.id.button9);
- mbutton0=findViewById(R.id.button0);
- //c、del、预留
- mbuttonc=findViewById(R.id.buttonc);
- mbuttondel=findViewById(R.id.buttondel);
- mbuttonyuliu=findViewById(R.id.buttonyuliu);
- //加减乘除、点、等号
- mbuttonjia=findViewById(R.id.buttonjia);
- mbuttonjian=findViewById(R.id.buttonjian);
- mbuttoncheng=findViewById(R.id.buttoncheng);
- mbuttonchu=findViewById(R.id.buttonchu);
- mbuttondeng=findViewById(R.id.buttondeng);
- mbuttondian=findViewById(R.id.buttondian);
- //输入输出
- edinput=findViewById(R.id.ed_input);
- edoutput=findViewById(R.id.ed_output);
-
- //设置按钮监听
- //0-9
- mbutton0.setOnClickListener(this);
- mbutton1.setOnClickListener(this);
- mbutton2.setOnClickListener(this);
- mbutton3.setOnClickListener(this);
- mbutton4.setOnClickListener(this);
- mbutton5.setOnClickListener(this);
- mbutton6.setOnClickListener(this);
- mbutton7.setOnClickListener(this);
- mbutton8.setOnClickListener(this);
- mbutton9.setOnClickListener(this);
- //c、del、预留
- mbuttonc.setOnClickListener(this);
- mbuttondel.setOnClickListener(this);
- mbuttonyuliu.setOnClickListener(this);
- //加减乘除、点、等号
- mbuttonjia.setOnClickListener(this);
- mbuttonjian.setOnClickListener(this);
- mbuttoncheng.setOnClickListener(this);
- mbuttonchu.setOnClickListener(this);
- mbuttondeng.setOnClickListener(this);
- mbuttondian.setOnClickListener(this);
- }
-
- @Override
- public void onClick(View view)
- {
- String input = edinput.getText().toString();
- String output = edoutput.getText().toString();
- switch (view.getId()){
- //0-9
- case R.id.button0:
- case R.id.button1:
- case R.id.button2:
- case R.id.button3:
- case R.id.button4:
- case R.id.button5:
- case R.id.button6:
- case R.id.button7:
- case R.id.button8:
- case R.id.button9:
- case R.id.buttondian:
- if(deng_flag){
- deng_flag=false;
- edinput.setText(null);
- edinput.setText(((Button) view).getText());
- }else {
- edinput.setText(input+((Button) view).getText());
- }
- edinput.setText(input+((Button) view).getText());
- break;
- //c
- case R.id.buttonc:
- edinput.setText(null);
- edoutput.setText(null);
- break;
- //del
- case R.id.buttondel:
- if (deng_flag){
- deng_flag=false;
- edinput.setText("");
- }else if(input !=null&&!input.equals("")){
- edinput.setText(input.substring(0,input.length()-1));
- }
- break;
- //预留
- case R.id.buttonyuliu:
- break;
- //加减乘除
- case R.id.buttonjia:
- case R.id.buttonjian:
- case R.id.buttoncheng:
- case R.id.buttonchu:
- edinput.setText(input+" "+((Button) view).getText()+" ");
- break;
- //等号
- case R.id.buttondeng:
- // edinput.setText(input+((Button) view).getText());
- // break;
- getResult();
-
- }
-
- }
-
- private void getResult() {
- try{
- String input = edinput.getText().toString();
- int iResult=0;
- double dResult=0;
- String cw="错误";
- String s1,s2,op;//数字,数字,操作符 s1"4" op"*" s2"5"
- s1=input.substring(0,input.indexOf(" "));
- op=input.substring(input.indexOf(" ")+1,input.indexOf(" ")+2);
- s2=input.substring(input.indexOf(" ")+3);
-
- double d1,d2;
- d1=Double.parseDouble(s1);
- d2=Double.parseDouble(s2);
-
- if(op.equals("+")){//加
- dResult=d1+d2;
- // edoutput.setText(dResult+"");
- }else if(op.equals("-")){//减
- dResult=d1-d2;
- } else if (op.equals("*")){//乘
- dResult=d1*d2;
- } else if (op.equals("/")) {//除
- if(d2==0){
- edoutput.setText(cw+"");
- } else if (d1==0) {
- dResult=0;
- } else {
- dResult=d1/d2;
- }
- }
- if(!input.equals(".")&&!input.equals("/")){
- iResult=(int)dResult;
- edoutput.setText(iResult+"");
- }
- edoutput.setText(dResult+"");
-
- }catch (Exception e){
- System.out.println(e);
- }
- }
- }
运行结果如下:

输入计算值,得出结果
