xml样式 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:textSize="40dp" android:id="@+id/tv_show" android:textColor="@color/teal_200" android:textStyle="bold" android:text="0" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button1" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="c" /> <Button android:id="@+id/button2" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="DELETE" /> <Button android:id="@+id/button3" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="/" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button4" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="7" android:onClick="MyOnClick"/> <Button android:id="@+id/button5" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="8" android:onClick="MyOnClick"/> <Button android:id="@+id/button6" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="9" android:onClick="MyOnClick"/> <Button android:id="@+id/button7" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="X" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button8" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="4" android:onClick="MyOnClick"/> <Button android:id="@+id/button9" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="5" android:onClick="MyOnClick"/> <Button android:id="@+id/button10" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="6" android:onClick="MyOnClick"/> <Button android:id="@+id/button11" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="+" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button12" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="1" android:onClick="MyOnClick"/> <Button android:id="@+id/button13" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="2" android:onClick="MyOnClick"/> <Button android:id="@+id/button14" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="3" android:onClick="MyOnClick"/> <Button android:id="@+id/button15" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="-" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button16" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="." android:onClick="MyOnClick"/> <Button android:id="@+id/button17" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="0" android:onClick="MyOnClick"/> <Button android:id="@+id/button18" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="=" /> </LinearLayout> </LinearLayout>
java代码 package com.example.myapplication4; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private Button button4,button5,button6,button8,button9,button10, button12,button13,button14,button17; private TextView tv_show; private Button button_qinchu,button_shanchu,button_chu,button_jia,button_jian,button_cheng, button_dian,button_den; private boolean isChar=false; private StringBuffer strA=new StringBuffer(),strB=new StringBuffer(); char operator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } public void init(){ button_qinchu=this.findViewById(R.id.button1); button_shanchu=this.findViewById(R.id.button2); button_chu=this.findViewById(R.id.button3); button4=this.findViewById(R.id.button4); button5=this.findViewById(R.id.button5); button6=this.findViewById(R.id.button6); button_cheng=this.findViewById(R.id.button7); button8=this.findViewById(R.id.button8); button9=this.findViewById(R.id.button9); button10=this.findViewById(R.id.button10); button_jia=this.findViewById(R.id.button11); button12=this.findViewById(R.id.button12); button13=this.findViewById(R.id.button13); button14=this.findViewById(R.id.button14); button_jian=this.findViewById(R.id.button15); button_dian=this.findViewById(R.id.button16); button17=this.findViewById(R.id.button17); button_den=this.findViewById(R.id.button18); tv_show=this.findViewById(R.id.tv_show); button_qinchu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (isChar==false){ strA=new StringBuffer(); }else { strB=new StringBuffer(); } tv_show.setText("0"); } }); button_shanchu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (isChar==false) { if(strA.length()==0){ tv_show.setText("0"); }else{ strA.deleteCharAt(strA.length()-1); tv_show.setText(strA.toString());} if(strA.length()==0){ tv_show.setText("0"); } } else{ if(strB.length()==0){ tv_show.setText("0"); } else{ strB.deleteCharAt(strB.length()-1); tv_show.setText(strB.toString());} if(strB.length()==0){ tv_show.setText("0"); } } } }); button_jia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv_show.setText("+"); isChar=true; operator=0; } }); button_jian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv_show.setText("-"); operator = 0; isChar=true; operator=1; } }); button_cheng.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv_show.setText("乘"); operator = 0; isChar=true; operator=2; } }); button_chu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv_show.setText("除"); operator = 0; isChar=true; operator=3; } }); button_den.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (strA.length()==0&&strB.length()==0){ strA.append(0); strB.append(0); }else if(strA.length()==0){ strA.append(0); }else if (strB.length()==0){ strB.append(0); } double one=Double.parseDouble(strA.toString()); double two=Double.parseDouble(strB.toString()); double sum=0; switch (operator){ case 0: isChar=false; sum=one+two; break; case 1: isChar=false; sum=one-two; break; case 2: isChar=false; sum=one*two; break; case 3: isChar=false; sum=one/two; break; } tv_show.setText(sum+""); strA = new StringBuffer(); strB = new StringBuffer(); // 表示从第二轮计算开始,又是从第一个(digA)数开始赋值 isChar = false; } }); } public void MyOnClick(View v) { if (isChar==false){switch (v.getId()) { case R.id.button4: strA.append(7); tv_show.setText(strA); break; case R.id.button5: strA.append(8); tv_show.setText(strA); break; case R.id.button6: strA.append(9); tv_show.setText(strA); break; case R.id.button8: strA.append(4); tv_show.setText(strA); break; case R.id.button9: strA.append(5); tv_show.setText(strA); break; case R.id.button10: strA.append(6); tv_show.setText(strA); break; case R.id.button12: strA.append(1); tv_show.setText(strA); break; case R.id.button13: strA.append(2); tv_show.setText(strA); break; case R.id.button14: strA.append(3); tv_show.setText(strA); break; case R.id.button16: strA.append("."); tv_show.setText(strA); break; case R.id.button17: strA.append(0); tv_show.setText(strA); break; }}else {switch (v.getId()) { case R.id.button4: strB.append(7); tv_show.setText(strB); break; case R.id.button5: strB.append(8); tv_show.setText(strB); break; case R.id.button6: strB.append(9); tv_show.setText(strB); break; case R.id.button8: strB.append(4); tv_show.setText(strB); break; case R.id.button9: strB.append(5); tv_show.setText(strB); break; case R.id.button10: strB.append(6); tv_show.setText(strB); break; case R.id.button12: strB.append(1); tv_show.setText(strB); break; case R.id.button13: strB.append(2); tv_show.setText(strB); break; case R.id.button14: strB.append(3); tv_show.setText(strB); break; case R.id.button16: strA.append("."); tv_show.setText(strB); break; case R.id.button17: strB.append(0); tv_show.setText(strB); break; }} } }