Android简单计算器(已消除常见bug)

来源:互联网 发布:数据清洗与etl 编辑:程序博客网 时间:2024/06/06 09:05
xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/LinearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="right"        android:height="40dp"        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/btn_cle"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_span="2"                android:onClick="onClick"                android:text="CLEAR" />            <Button                android:id="@+id/btn_del"                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/btn_7"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="7" />            <Button                android:id="@+id/btn_8"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="8" />            <Button                android:id="@+id/btn_9"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="9" />            <Button                android:id="@+id/btn_div"                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/btn_4"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="4" />            <Button                android:id="@+id/btn_5"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="5" />            <Button                android:id="@+id/btn_6"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="6" />            <Button                android:id="@+id/btn_mul"                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/btn_1"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="1" />            <Button                android:id="@+id/btn_2"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="2" />            <Button                android:id="@+id/btn_3"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="3" />            <Button                android:id="@+id/btn_sub"                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/btn_point"                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/btn_equ"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="=" />            <Button                android:id="@+id/btn_add"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:onClick="onClick"                android:text="+" />        </TableRow>    </TableLayout></LinearLayout>
java文件:
package com.next.calculator1;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {private TextView textView;private String str,num1,num2;private double result;private boolean addNum;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById(R.id.textView);addNum = true;}public void onClick(View v){str = (String) textView.getText();switch (v.getId()) {case R.id.btn_cle:textView.setText("");break;case R.id.btn_del:if(!str.equals("") && str != null){textView.setText(str.substring(0, str.length()-1));}break;case R.id.btn_equ:if(str.contains("+")){getResult(num1, num2, "+");}else if(str.contains("-")){getResult(num1, num2, "-");}else if(str.contains("×")){getResult(num1, num2, "×");}else if(str.contains("÷")){getResult(num1, num2, "÷");}else {return;}break;case R.id.btn_add:case R.id.btn_sub:case R.id.btn_mul:case R.id.btn_div:if (str.contains("+")||str.contains("-")||str.contains("×")||str.contains("÷"))return;elsetextView.setText(str+((Button)v).getText());if(!addNum)addNum = true;break;default:if (addNum) {textView.setText(str+((Button)v).getText());}else{textView.setText(((Button)v).getText());addNum = true;}break;}}private void getResult(String num1,String num2,String op) {num1 = str.substring(0,str.indexOf(op));num2 = str.substring(str.indexOf(op)+1);try {double n1 = Double.parseDouble(num1);double n2 = Double.parseDouble(num2);if (op.equals("+")) {result = n1+n2;}else if(op.equals("-")){result = n1-n2;}else if(op.equals("×")){result = n1*n2;}else if(op.equals("÷")){result = n1/n2;}else {return;}String r = result+"";if(r.contains(".")&&r.substring(r.length()-1).equals("0")){r = r.substring(0,r.indexOf("."));}textView.setText(r);addNum = false;} catch (Exception e) {return;}}}


0 1
原创粉丝点击