zoukankan      html  css  js  c++  java
  • Android 简单计算器实现源码

    1.string.xml代码

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <resources>
     3 
     4     <string name="hello">Hello World, CalculatorActivity!</string>
     5     <string name="app_name">计算器</string>
     6     <string name="zero">0</string>
     7     <string name="one">1</string>
     8     <string name="two">2</string>
     9     <string name="three">3</string>
    10     <string name="four">4</string>
    11     <string name="five">5</string>
    12     <string name="six">6</string>
    13     <string name="seven">7</string>
    14     <string name="eight">8</string>
    15     <string name="nine">9</string>
    16     
    17     <string name="add">+</string>
    18     <string name="cut">-</string>
    19     <string name="multiply">×</string>
    20     <string name="divide">÷</string>
    21     <string name="spot">.</string>
    22     <string name="equal">=</string>
    23     <string name="reset">清除</string>
    24    
    25 </resources>
    View Code

    2.main.xml  布局代码

      1 <?xml version="1.0" encoding="utf-8"?>
      2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      3     android:layout_width="fill_parent"
      4     android:layout_height="fill_parent"
      5     android:orientation="vertical" >
      6 
      7     <EditText
      8         android:id="@+id/text"
      9         android:layout_width="fill_parent"
     10         android:layout_height="130dp"
     11         android:textSize="45sp"
     12         android:maxLength="10"
     13         android:textColor="#FFF" 
     14         android:layout_gravity="center"
     15         android:cursorVisible="false"
     16         android:gravity="right"
     17          />
     18 
     19     <TableLayout
     20         android:id="@+id/tablelayout"
     21         android:layout_width="fill_parent"
     22         android:layout_height="wrap_content" >
     23 
     24         <LinearLayout
     25             android:layout_width="fill_parent"
     26             android:layout_height="fill_parent" >
     27 
     28                <Button
     29                 android:layout_width="240dp"
     30                 android:layout_height="60dp"
     31                 android:background="#222"
     32                 android:textColor="#FFF" 
     33                 android:text="" />
     34                         
     35             <Button
     36                 android:layout_width="80dp"
     37                 android:layout_height="60dp"
     38                 android:textColor="#FFF" 
     39                 android:text="@string/reset" 
     40                 android:id="@+id/reset"
     41                 />
     42         </LinearLayout>
     43 
     44         <LinearLayout
     45             android:layout_width="fill_parent"
     46             android:layout_height="fill_parent" >
     47 
     48             <Button
     49                 android:layout_width="80dp"
     50                 android:layout_height="wrap_content"
     51                 android:textSize="40sp" 
     52                 android:textColor="#FFF" 
     53                 android:text="@string/seven" 
     54                  android:id="@+id/seven"/>
     55 
     56             <Button
     57                 android:layout_width="80dp"
     58                 android:layout_height="wrap_content"
     59                 android:textSize="40sp" 
     60                 android:textColor="#FFF" 
     61                 android:text="@string/eight" 
     62               android:id="@+id/eight"/>
     63 
     64             <Button
     65                 android:layout_width="80dp"
     66                 android:layout_height="wrap_content"
     67                 android:textSize="40sp" 
     68                 android:textColor="#FFF" 
     69                 android:text="@string/nine" 
     70                 android:id="@+id/nine" />
     71 
     72             <Button
     73                 android:layout_width="80dp"
     74                 android:layout_height="fill_parent"
     75                 android:textSize="40sp" 
     76                 android:textColor="#FFF" 
     77                 android:text="@string/divide" 
     78                 android:id="@+id/divide" />
     79         </LinearLayout>
     80 
     81         <LinearLayout
     82             android:layout_width="fill_parent"
     83             android:layout_height="fill_parent" >
     84 
     85             <Button
     86                 android:layout_width="80dp"
     87                 android:layout_height="wrap_content"
     88                 android:textSize="40sp" 
     89                 android:textColor="#FFF" 
     90                 android:text="@string/four" 
     91                 android:id="@+id/four"
     92                 />
     93 
     94             <Button
     95                 android:layout_width="80dp"
     96                 android:layout_height="wrap_content"
     97                 android:textSize="40sp" 
     98                 android:textColor="#FFF" 
     99                 android:text="@string/five" 
    100                 android:id="@+id/five"
    101                 />
    102 
    103             <Button
    104                 android:layout_width="80dp"
    105                 android:layout_height="wrap_content"
    106                 android:textSize="40sp" 
    107                 android:textColor="#FFF" 
    108                 android:text="@string/six" 
    109                 android:id="@+id/six"
    110                 />
    111 
    112             <Button
    113                 android:layout_width="80dp"
    114                 android:layout_height="fill_parent"
    115                 android:textSize="40sp" 
    116                 android:textColor="#FFF" 
    117                 android:text="@string/multiply" 
    118                 android:id="@+id/multiply"
    119                 />
    120         </LinearLayout>
    121 
    122         <LinearLayout
    123             android:layout_width="fill_parent"
    124             android:layout_height="fill_parent" >
    125 
    126             <Button
    127                 android:layout_width="80dp"
    128                 android:layout_height="wrap_content"
    129                 android:textSize="40sp"
    130                 android:textColor="#FFF"  
    131                 android:text="@string/one" 
    132                 android:id="@+id/one"
    133                 />
    134 
    135             <Button
    136                 android:layout_width="80dp"
    137                 android:layout_height="wrap_content"
    138                 android:textSize="40sp" 
    139                 android:textColor="#FFF" 
    140                 android:text="@string/two" 
    141                 android:id="@+id/two"
    142                 />
    143 
    144             <Button
    145                 android:layout_width="80dp"
    146                 android:layout_height="wrap_content"
    147                 android:textSize="40sp" 
    148                 android:textColor="#FFF" 
    149                 android:text="@string/three" 
    150                  android:id="@+id/three"
    151                 />
    152 
    153             <Button
    154                 android:layout_width="80dp"
    155                 android:layout_height="fill_parent"
    156                 android:textSize="40sp" 
    157                 android:textColor="#FFF" 
    158                 android:text="@string/cut" 
    159                 android:id="@+id/cut"
    160                 />
    161         </LinearLayout>
    162 
    163         <LinearLayout
    164             android:layout_width="fill_parent"
    165             android:layout_height="fill_parent" >
    166 
    167             <Button
    168                 android:layout_width="80dp"
    169                 android:layout_height="wrap_content"
    170                 android:textSize="40sp" 
    171                 android:textColor="#FFF" 
    172                 android:text="@string/spot" 
    173                 android:id="@+id/spot"
    174                 />
    175 
    176             <Button
    177                 android:layout_width="80dp"
    178                 android:layout_height="wrap_content"
    179                 android:textSize="40sp" 
    180                 android:textColor="#FFF" 
    181                 android:text="@string/zero" 
    182                 android:id="@+id/zero"
    183                 />
    184 
    185             <Button
    186                 android:layout_width="80dp"
    187                 android:layout_height="wrap_content"
    188                 android:textSize="40sp" 
    189                 android:textColor="#FFF" 
    190                 android:text="@string/equal" 
    191                 android:id="@+id/equal"
    192                 />
    193 
    194             <Button
    195                 android:layout_width="80dp"
    196                 android:layout_height="fill_parent"
    197                 android:textSize="40sp" 
    198                 android:textColor="#FFF" 
    199                 android:text="@string/add"
    200                 android:id="@+id/add"
    201                  />
    202         </LinearLayout>
    203         
    204     </TableLayout>
    205 
    206 </LinearLayout>
    View Code

    3.CalculatorActivity.java 代码

      1 package FosgeIT.Calculator;
      2 import android.app.Activity;
      3 import android.os.Bundle;
      4 import android.view.View;
      5 import android.view.View.OnClickListener;
      6 import android.widget.Button;
      7 import android.widget.TextView;
      8 import android.widget.Toast;
      9 
     10 /**
     11  * 计算器
     12  * 
     13  * @author YinRQ 2013-07-12 13:25:04
     14  */
     15 
     16 public class CalculatorActivity extends Activity {
     17 
     18     // 私有变量
     19     private int option = 0;
     20     private boolean newdigital = true;
     21     private double a = 0, b = 0;
     22     private Button btnOne;
     23     private Button btnTwo;
     24     private Button btnThree;
     25     private Button btnFour;
     26     private Button btnFive;
     27     private Button btnSix;
     28     private Button btnSeven;
     29     private Button btnEight;
     30     private Button btnNine;
     31     private Button btnZero;
     32     private Button btnAdd;
     33     private Button btnCut;
     34     private Button btnMultiply;
     35     private Button btnDivide;
     36     private Button btnEqual;
     37     private Button btnSpot;
     38     private Button btnReset;
     39 
     40     @Override
     41     public void onCreate(Bundle savedInstanceState) {
     42         super.onCreate(savedInstanceState);
     43         setContentView(R.layout.main);
     44 
     45         // 初始化控件
     46         btnOne = (Button) findViewById(R.id.one);
     47         btnTwo = (Button) findViewById(R.id.two);
     48         btnThree = (Button) findViewById(R.id.three);
     49         btnFour = (Button) findViewById(R.id.four);
     50         btnFive = (Button) findViewById(R.id.five);
     51         btnSix = (Button) findViewById(R.id.six);
     52         btnSeven = (Button) findViewById(R.id.seven);
     53         btnEight = (Button) findViewById(R.id.eight);
     54         btnNine = (Button) findViewById(R.id.nine);
     55         btnZero = (Button) findViewById(R.id.zero);
     56         btnAdd = (Button) findViewById(R.id.add);
     57         btnCut = (Button) findViewById(R.id.cut);
     58         btnMultiply = (Button) findViewById(R.id.multiply);
     59         btnDivide = (Button) findViewById(R.id.divide);
     60         btnEqual = (Button) findViewById(R.id.equal);
     61         btnSpot = (Button) findViewById(R.id.spot);
     62         btnReset = (Button) findViewById(R.id.reset);
     63 
     64         btnOne.setOnClickListener(lisenter);
     65         btnTwo.setOnClickListener(lisenter);
     66         btnThree.setOnClickListener(lisenter);
     67         btnFour.setOnClickListener(lisenter);
     68         btnFive.setOnClickListener(lisenter);
     69         btnSix.setOnClickListener(lisenter);
     70         btnSeven.setOnClickListener(lisenter);
     71         btnEight.setOnClickListener(lisenter);
     72         btnNine.setOnClickListener(lisenter);
     73         btnZero.setOnClickListener(lisenter);
     74         btnAdd.setOnClickListener(lisenter);
     75         btnCut.setOnClickListener(lisenter);
     76         btnMultiply.setOnClickListener(lisenter);
     77         btnDivide.setOnClickListener(lisenter);
     78         btnEqual.setOnClickListener(lisenter);
     79         btnReset.setOnClickListener(lisenter);
     80         btnSpot.setOnClickListener(lisenter);
     81     }
     82 
     83     
     84     private OnClickListener lisenter = new OnClickListener() {
     85 
     86         public void onClick(View v) {
     87 
     88             TextView text = (TextView) findViewById(R.id.text);
     89             String s = text.getText().toString();
     90             Button btn = (Button) v;
     91             String t = (String) btn.getText();
     92             if (btn.getId() == R.id.zero || btn.getId() == R.id.one
     93                     || btn.getId() == R.id.two || btn.getId() == R.id.three
     94                     || btn.getId() == R.id.four || btn.getId() == R.id.five
     95                     || btn.getId() == R.id.six || btn.getId() == R.id.seven
     96                     || btn.getId() == R.id.eight || btn.getId() == R.id.nine) {
     97                 if (newdigital) {
     98                     text.setText(s + t);
     99                 } else {
    100                     text.setText(s);
    101                     newdigital = false;
    102                 }
    103                 return;
    104             }
    105 
    106             //
    107             if (btn.getId() == R.id.add) {
    108                 a = Double.parseDouble(s);
    109                 option = 1;
    110                 text.setText("");
    111                 return;
    112                 
    113             }
    114 
    115             //
    116             if (btn.getId() == R.id.cut) {
    117                 a = Double.parseDouble(s);
    118                 option = 2;
    119                 text.setText("");
    120                 return;
    121             }
    122 
    123             //
    124             if (btn.getId() == R.id.multiply) {
    125                 a = Double.parseDouble(s);
    126                 option = 3;
    127                 text.setText("");
    128                 return;
    129             }
    130             
    131             //
    132             if (btn.getId() == R.id.divide){
    133                 a = Double.parseDouble(s);
    134                 option = 4;
    135                 text.setText("");
    136                 return;
    137             }
    138 
    139             // 清除
    140             if (btn.getId() == R.id.reset){
    141                 a = 0;
    142                 b = 0;
    143                 option = 0;
    144                 newdigital = true;
    145                 text.setText("");
    146                 return;
    147             }
    148 
    149             // .
    150             if (btn.getId() == R.id.spot){
    151                 if (s.indexOf(".") == -1)
    152                     if (s.trim().startsWith("0")) {
    153                         text.setText("0.");
    154                         newdigital = true;
    155                     } else {
    156                         text.setText(s + ".");
    157 
    158                     }
    159                 return;
    160             }
    161 
    162             // =
    163             if (btn.getId() == R.id.equal){
    164                 b = Double.parseDouble(s);
    165                 switch (option) {
    166                 case 1:
    167                     text.setText(String.valueOf(a + b));
    168                     break;
    169                 case 2:
    170                     text.setText(String.valueOf(a - b));
    171                     break;
    172                 case 3:
    173                     text.setText(String.valueOf(a * b));
    174                     break;
    175                 case 4: {
    176                     if (b != 0) {
    177                         text.setText(String.valueOf(a / b));
    178                     } else {
    179                         Toast.makeText(CalculatorActivity.this, "除数不能为0",
    180                                 Toast.LENGTH_SHORT).show();
    181                         text.setText("");
    182                         a = 0;
    183                         b = 0;
    184                         option = 0;
    185                         newdigital = true;
    186                         return;
    187                     }
    188                     break;
    189                 }
    190                 case 5:
    191                     text.setText(String.valueOf(Math.pow(a, b)));
    192                     break;
    193 
    194                 }
    195                 return;
    196             }
    197         }
    198 
    199     };
    200 
    201 }
    View Code

    4.效果截图

  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/yinrq/p/3187178.html
Copyright © 2011-2022 走看看