前台代码如下
- <?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"
- android:layout_width="match_parent"
- android:orientation="vertical"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/whiteblack"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="right"
- android:height="150dp"
- android:textSize="30sp" />
-
- <TableLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:stretchColumns="*" >
-
- <TableRow
- android:id="@+id/tableRow1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
-
- <Button
- android:id="@+id/btnclear"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_span="2"
- android:onClick="onClick"
- android:text="CLEAR" />
-
- <Button
- android:id="@+id/btndelete"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_span="2"
- android:onClick="onClick"
- android:text="☜" />
- </TableRow>
-
- <TableRow
- android:id="@+id/tableRow2"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
-
- <Button
- android:id="@+id/btn7"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="7" />
-
- <Button
- android:id="@+id/btn8"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="8" />
-
- <Button
- android:id="@+id/btn9"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="9" />
-
- <Button
- android:id="@+id/btnchu"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="÷" />
- </TableRow>
-
- <TableRow
- android:id="@+id/tableRow3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" >
-
- <Button
- android:id="@+id/btn4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="4" />
-
- <Button
- android:id="@+id/btn5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="5" />
-
- <Button
- android:id="@+id/btn6"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="6" />
-
- <Button
- android:id="@+id/btnmul"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="×" />
- </TableRow>
-
- <TableRow
- android:id="@+id/tableRow4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" >
-
- <Button
- android:id="@+id/btn1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="1" />
-
- <Button
- android:id="@+id/btn2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="2" />
-
- <Button
- android:id="@+id/btn3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="3" />
-
- <Button
- android:id="@+id/btnsub"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="-" />
- </TableRow>
-
- <TableRow
- android:id="@+id/tableRow5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" >
-
- <Button
- android:id="@+id/btnpoint"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="." />
-
- <Button
- android:id="@+id/btn_0"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="0" />
-
- <Button
- android:id="@+id/btnequ"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="=" />
-
- <Button
- android:id="@+id/btnadd"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="onClick"
- android:text="+" />
- </TableRow>
- </TableLayout>
-
-
-
- </LinearLayout>
后台代码如下
- package com.example.a19575.jiandanjisuanqi;
-
- import android.content.Context;
- import android.content.DialogInterface;
- import android.support.annotation.Nullable;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- import android.widget.Toast;
-
- public class MainActivity extends AppCompatActivity {
- TextView textView;
- Button btnclear;
- Button btndelete;
- Button btn7;
- Button btn8;
- Button btn9;
- Button btn1;
- Button btn2;
- Button btn3;
- Button btn4;
- Button btn5;
- Button btn6;
- Button btn0;
- Button btnjia;
- Button btnjian;
- Button btncheng;
- Button btnchu;
- Button btnpoint;
- Button btnequ;
- String str1="";
- String str2="";
- int flagdelete=0;
- int flagclear=0;
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
-
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- textView=(TextView)findViewById(R.id.whiteblack);
- btnclear=(Button)findViewById(R.id.btnclear);
- btndelete=(Button)findViewById(R.id.btndelete);
- btn7=(Button)findViewById(R.id.btn7);
- btn8=(Button)findViewById(R.id.btn8);
- btn9=(Button)findViewById(R.id.btn9);
- btn1=(Button)findViewById(R.id.btn1);
- btn2=(Button)findViewById(R.id.btn2);
- btn3=(Button)findViewById(R.id.btn3);
- btn4=(Button)findViewById(R.id.btn4);
- btn5=(Button)findViewById(R.id.btn5);
- btn6=(Button)findViewById(R.id.btn6);
- btn0=(Button)findViewById(R.id.btn_0);
- btnjia=(Button)findViewById(R.id.btnadd);
- btnjian=(Button)findViewById(R.id.btnsub);
- btncheng=(Button)findViewById(R.id.btnmul);
- btnchu=(Button)findViewById(R.id.btnchu);
- btnpoint=(Button)findViewById(R.id.btnpoint);
- btnequ=(Button)findViewById(R.id.btnequ);
-
- }
-
- public void onClick(View v)
- {
- switch (v.getId()){
- case R.id.btn1:str1+="1";break;
- case R.id.btn2:str1+="2";break;
- case R.id.btn3:str1+="3";break;
- case R.id.btn4:str1+="4";break;
- case R.id.btn5:str1+="5";break;
- case R.id.btn6:str1+="6";break;
- case R.id.btn7:str1+="7";break;
- case R.id.btn8:str1+="8";break;
- case R.id.btn9:str1+="9";break;
- case R.id.btn_0:str1+="0";break;
- case R.id.btnadd:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false && str1.contains("/")==false)str1+="+";break;
- case R.id.btnsub:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false&& str1.contains("/")==false)str1+="-";break;
- case R.id.btnchu:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false&& str1.contains("/")==false)str1+="/";break;
- case R.id.btnmul:if(str1.contains("+")==false && str1.contains("-")==false && str1.contains("*")==false&& str1.contains("/")==false)str1+="*";break;//保证只含有一个操作数
- case R.id.btnpoint:str1+=".";break;
- case R.id.btndelete:flagdelete=1 ;break;
- case R.id.btnclear: flagclear=1;break;
- case R.id.btnequ: str1+="=";break;
- }
- if(flagdelete==1&& str1.length()>=1){//删除一个字符
- str1=str1.substring(0,str1.length()-1);
- flagdelete=0;
- }
- if(flagclear==1){//清空
- str1="";
- flagclear=0;
- }
- if(str1.length()==1&&(str1.charAt(0)=='+' || str1.charAt(0)=='-' || str1.charAt(0)=='*' || str1.charAt(0)=='/' || str1.charAt(0)=='.' || str1.charAt(0)=='=' )){//保证第一个字符只可以是数字
- str1="";
- }
- if(str1.length()>=2&&(str1.charAt(str1.length()-1)=='-' || str1.charAt(str1.length()-1)=='+' || str1.charAt(str1.length()-1)=='/' || str1.charAt(str1.length()-1)=='*' ||//确保只能输入一个运算符
- str1.charAt(str1.length()-1)=='=' || str1.charAt(str1.length()-1)=='.')&& (str1.charAt(str1.length()-2)=='-' ||str1.charAt(str1.length()-2)=='+' ||
- str1.charAt(str1.length()-2)=='*' || str1.charAt(str1.length()-2)=='/' || str1.charAt(str1.length()-2)=='=' || str1.charAt(str1.length()-2)=='.' )){
- str1=str1.substring(0,str1.length()-1);
- }
- textView.setText(str1);
- int t=0;
- int flag1=0;
- if(str1.length()>3&&str1.charAt(str1.length()-1)=='='){
- char a[]=str1.toCharArray();
- for(int i=0;i<str1.length();i++) {
- if (a[i] == '+' || a[i] == '-' || a[i] == '*' || a[i] == '/') {//得到运算符的位置
- t = i;
- break;
- }
- }
- double a2;
- double b2;
- try{
- a2 = Double.parseDouble(str1.substring(0, t ));
- b2 = Double.parseDouble(str1.substring(t + 1, str1.length() - 1));
- if (str1.contains("+"))
- str2 = String.valueOf(a2 + b2);
- if (str1.contains("-"))
- str2 = String.valueOf(a2 - b2);
- if (str1.contains("*"))
- str2 = String.valueOf(a2 * b2);
- if (str1.contains("/") && b2 != 0)
- str2 = String.valueOf(a2 / b2);
- if (str1.contains("/") && b2 == 0)
- flag1 = 1;
- }catch (Exception e)
- {
- textView.setText("error");;
- }
-
-
-
- if(flag1==1){
- textView.setText("分母不可为零");
- flag1=0;
- }
- else
- textView.setText(str1+str2);
- }
-
- }
- }
截图如下
总结:该计算器是我暑假随便写的一个app,只实现了两个操作数的运算,功能简单,比较粗糙。