当前位置:硬件测评 > Android制作简单的计算器

Android制作简单的计算器

  • 发布:2023-09-26 11:41

1、实验目的和要求

(1)掌握Android中常见的几种布局;
(2)掌握Android中常见的控件
(3)掌握事件处理方法

2.activity_main界面的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://www.sychzs.cn/apk/res/android"xmlns:app="http://www.sychzs.cn/apk/res-auto"xmlns:tools="http://www.sychzs.cn/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><EditTextandroid:id="@+id/et_input"android:layout_width="match_parent"android:layout_height="106dp"android:paddingRight="5dp"android:paddingBottom="5dp"android:textSize="50sp" /><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="30dp"android:orientation="horizontal"android:gravity="center_horizontal"><Buttonandroid:id="@+id/btn_clr"android:layout_width="80dp"android:layout_height="80dp"android:text="C"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid: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" /><Buttonandroid: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" /><Buttonandroid: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><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"android:gravity="center_horizontal"><Buttonandroid:id="@+id/btn_7"android:layout_width="80dp"android:layout_height="80dp"android:text="7"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid: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"/><Buttonandroid: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"/><Buttonandroid: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><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"android:gravity="center_horizontal"><Buttonandroid:id="@+id/btn_4"android:layout_width="80dp"android:layout_height="80dp"android:text="4"android:textSize="30sp"android:paddingRight="15sp"android:paddingBottom="15sp"/><Buttonandroid: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"/><Buttonandroid: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"/><Buttonandroid: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><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:gravity="center_horizontal"android:orientation="horizontal"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_1"android:layout_width="80dp"android:layout_height="80dp"android:paddingRight="15sp"android:paddingBottom="15sp"android:text="1"android:textSize="30sp" /><Buttonandroid:id="@+id/btn_2"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"android:text="2"android:textSize="30sp" /><Buttonandroid:id="@+id/btn_3"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"android:text="3"android:textSize="30sp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_0"android:layout_width="170dp"android:layout_height="80dp"android:paddingRight="15sp"android:paddingBottom="15sp"android:text="0"android:textSize="30sp" /><Buttonandroid:id="@+id/btn_pt"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"android:text="."android:textSize="30sp" /></LinearLayout></LinearLayout><Buttonandroid:id="@+id/btn_eq"android:layout_width="80dp"android:layout_height="170dp"android:layout_marginLeft="10dp"android:paddingRight="15sp"android:paddingBottom="15sp"android:text="="android:textSize="30sp" /></LinearLayout></LinearLayout>

3.MainActivity的代码

package com.example.myapplication;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener {//创建Button对象   也就是activity_main.xml里所设置的IDButton 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编辑文本框中是否清空@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//实例化对象setContentView(R.layout.activity_main);btn_0= findViewById(R.id.btn_0);btn_1= findViewById(R.id.btn_1);btn_2= findViewById(R.id.btn_2);btn_3= findViewById(R.id.btn_3);btn_4= findViewById(R.id.btn_4);btn_5= findViewById(R.id.btn_5);btn_6= findViewById(R.id.btn_6);btn_7= findViewById(R.id.btn_7);btn_8= findViewById(R.id.btn_8);btn_9= findViewById(R.id.btn_9);btn_pt= findViewById(R.id.btn_pt);btn_add= findViewById(R.id.btn_add);btn_sub= findViewById(R.id.btn_sub);btn_mul= findViewById(R.id.btn_mul);btn_div= findViewById(R.id.btn_div);btn_clr= findViewById(R.id.btn_clr);btn_del= findViewById(R.id.btn_del);btn_eq= findViewById(R.id.btn_eq);et_input= 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);}@Overridepublic 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("");}}
}

4.结果实验截图


相关文章

最新资讯

热门推荐