• Android——计算器


    layout文件:

      1 <?xml version="1.0" encoding="utf-8"?>
      2 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
      3     android:layout_width="match_parent"
      4     android:layout_height="match_parent"
      5     android:rowCount="6"
      6     android:columnCount="4"
      7     xmlns:tools="http://schemas.android.com/tools"
      8     tools:context="com.hanqi.testapp2.PractiseActivity5">
      9     <TextView
     10         android:layout_width="match_parent"
     11         android:layout_height="200dp"
     12         android:layout_columnSpan="4"
     13         android:gravity="bottom|right"
     14         android:id="@+id/tv_1"
     15         android:textSize="50sp"
     16         android:paddingRight="10dp"
     17         android:textColor="#0F0"/>
     18     <Button
     19         android:layout_width="0dp"
     20         android:layout_height="0dp"
     21         android:text="c"
     22         android:layout_columnWeight="1"
     23         android:layout_rowWeight="1"
     24         android:textSize="25sp"
     25         android:id="@+id/bt_c"/>
     26     <Button
     27         android:layout_width="0dp"
     28         android:layout_height="0dp"
     29         android:text="←"
     30         android:layout_columnWeight="1"
     31         android:layout_rowWeight="1"
     32         android:textSize="25sp"
     33         android:id="@+id/bt_tui"/>
     34     <Button
     35         android:layout_width="0dp"
     36         android:layout_height="0dp"
     37         android:text="÷"
     38         android:layout_columnWeight="1"
     39         android:layout_rowWeight="1"
     40         android:textSize="25sp"
     41         android:id="@+id/bt_chu"
     42         android:onClick="bt_chu_onClick"/>
     43     <Button
     44         android:layout_width="0dp"
     45         android:layout_height="0dp"
     46         android:text="×"
     47         android:layout_columnWeight="1"
     48         android:layout_rowWeight="1"
     49         android:textSize="25sp"
     50         android:id="@+id/bt_cheng"
     51         android:onClick="bt_cheng_onClick"/>
     52     <Button
     53         android:layout_width="0dp"
     54         android:layout_height="0dp"
     55         android:text="7"
     56         android:layout_columnWeight="1"
     57         android:layout_rowWeight="1"
     58         android:textSize="25sp"
     59         android:onClick="bt_onClick"
     60         android:id="@+id/bt7"/>
     61     <Button
     62         android:layout_width="0dp"
     63         android:layout_height="0dp"
     64         android:text="8"
     65         android:layout_columnWeight="1"
     66         android:layout_rowWeight="1"
     67         android:textSize="25sp"
     68         android:onClick="bt_onClick"
     69         android:id="@+id/bt8"/>
     70     <Button
     71         android:layout_width="0dp"
     72         android:layout_height="0dp"
     73         android:text="9"
     74         android:layout_columnWeight="1"
     75         android:layout_rowWeight="1"
     76         android:textSize="25sp"
     77         android:onClick="bt9_onClick"
     78         android:id="@+id/bt9"/>
     79     <Button
     80         android:layout_width="0dp"
     81         android:layout_height="0dp"
     82         android:text="-"
     83         android:layout_columnWeight="1"
     84         android:layout_rowWeight="1"
     85         android:textSize="25sp"
     86         android:id="@+id/bt_jian"
     87         android:onClick="bt_jian_onClick"/>
     88     <Button
     89         android:layout_width="0dp"
     90         android:layout_height="0dp"
     91         android:text="4"
     92         android:layout_columnWeight="1"
     93         android:layout_rowWeight="1"
     94         android:textSize="25sp"
     95         android:id="@+id/bt4"/>
     96     <Button
     97         android:layout_width="0dp"
     98         android:layout_height="0dp"
     99         android:text="5"
    100         android:layout_columnWeight="1"
    101         android:layout_rowWeight="1"
    102         android:textSize="25sp"
    103         android:id="@+id/bt5"/>
    104     <Button
    105         android:layout_width="0dp"
    106         android:layout_height="0dp"
    107         android:text="6"
    108         android:layout_columnWeight="1"
    109         android:layout_rowWeight="1"
    110         android:textSize="25sp"
    111         android:id="@+id/bt6"/>
    112     <Button
    113         android:layout_width="0dp"
    114         android:layout_height="0dp"
    115         android:text="+"
    116         android:layout_columnWeight="1"
    117         android:layout_rowWeight="1"
    118         android:textSize="25sp"
    119         android:id="@+id/bt_jia"
    120         android:onClick="bt_jia_onClick"/>
    121     <Button
    122         android:layout_width="0dp"
    123         android:layout_height="0dp"
    124         android:text="1"
    125         android:layout_columnWeight="1"
    126         android:layout_rowWeight="1"
    127         android:textSize="25sp"
    128         android:id="@+id/bt1"/>
    129     <Button
    130         android:layout_width="0dp"
    131         android:layout_height="0dp"
    132         android:text="2"
    133         android:layout_columnWeight="1"
    134         android:layout_rowWeight="1"
    135         android:textSize="25sp"
    136         android:id="@+id/bt2"/>
    137     <Button
    138         android:layout_width="0dp"
    139         android:layout_height="0dp"
    140         android:text="3"
    141         android:layout_columnWeight="1"
    142         android:layout_rowWeight="1"
    143         android:textSize="25sp"
    144         android:id="@+id/bt3"/>
    145     <Button
    146         android:layout_width="0dp"
    147         android:layout_height="0dp"
    148         android:text="="
    149         android:layout_columnWeight="1"
    150         android:layout_rowSpan="2"
    151         android:layout_rowWeight="1"
    152         android:textSize="25sp"
    153         android:layout_gravity="fill"
    154         android:id="@+id/bt_deng"/>
    155     <Button
    156         android:layout_width="0dp"
    157         android:layout_height="0dp"
    158         android:text="0"
    159         android:layout_columnWeight="1"
    160         android:layout_columnSpan="2"
    161         android:layout_rowWeight="1"
    162         android:textSize="25sp"
    163         android:id="@+id/bt0"/>
    164     <Button
    165         android:layout_width="0dp"
    166         android:layout_height="0dp"
    167         android:text="."
    168         android:layout_columnWeight="1"
    169         android:layout_rowWeight="1"
    170         android:textSize="25sp"
    171         android:id="@+id/bt_dian"/>
    172 </GridLayout>

    java类:

      1 package com.hanqi.testapp2;
      2 
      3 import android.os.Bundle;
      4 import android.support.v7.app.AppCompatActivity;
      5 import android.view.View;
      6 import android.widget.Button;
      7 import android.widget.TextView;
      8 
      9 public class PractiseActivity5 extends AppCompatActivity {
     10 
     11     TextView tv_1;
     12     Button bt9;
     13     Button bt4;
     14     Button bt5;
     15     Button bt6;
     16     Button bt_jia;
     17     Button bt_jian;
     18     Button bt1;
     19     Button bt2;
     20     Button bt3;
     21     Button bt_cheng;
     22     Button bt0;
     23     Button bt_dian;
     24     Button bt_chu;
     25     Button bt_tui;
     26     Button bt7;
     27     Button bt8;
     28     Button bt_deng;
     29     Button bt_c;
     30 
     31     //s1存储数据
     32     double s1 = 0;
     33     //判断运算
     34     int s2 = 0;
     35     //承载连续运算数字
     36     double s3 = 0;
     37     //显示结果
     38     double s4;
     39     //运算完成后使用结果直接下次运算
     40     int s5=0;
     41     //确认小数点输入一次
     42     int s6=0;
     43 
     44     @Override
     45     protected void onCreate(Bundle savedInstanceState) {
     46         super.onCreate(savedInstanceState);
     47         setContentView(R.layout.activity_practise5);
     48         tv_1 = (TextView)findViewById(R.id.tv_1);
     49         bt0 = (Button)findViewById(R.id.bt0);
     50         bt1 = (Button)findViewById(R.id.bt1);
     51         bt2 = (Button)findViewById(R.id.bt2);
     52         bt3 = (Button)findViewById(R.id.bt3);
     53         bt4 = (Button)findViewById(R.id.bt4);
     54         bt5 = (Button)findViewById(R.id.bt5);
     55         bt6 = (Button)findViewById(R.id.bt6);
     56         bt7 = (Button)findViewById(R.id.bt7);
     57         bt8 = (Button)findViewById(R.id.bt8);
     58         bt9 = (Button)findViewById(R.id.bt9);
     59         bt_jia = (Button)findViewById(R.id.bt_jia);
     60         bt_jian = (Button)findViewById(R.id.bt_jian);
     61         bt_cheng = (Button)findViewById(R.id.bt_cheng);
     62         bt_dian = (Button)findViewById(R.id.bt_dian);
     63         bt_chu = (Button)findViewById(R.id.bt_chu);
     64         bt_tui = (Button)findViewById(R.id.bt_tui);
     65         bt_deng = (Button)findViewById(R.id.bt_deng);
     66         bt_c = (Button)findViewById(R.id.bt_c);
     67         bt_tui = (Button)findViewById(R.id.bt_tui);
     68 
     69         bt_onClick bt_l = new bt_onClick();
     70         bt_dian_onClick bt_dian1 = new bt_dian_onClick();
     71         bt_jia_onClick bt_jia1 = new bt_jia_onClick();
     72         bt_jian_onClick bt_jian1 = new bt_jian_onClick();
     73         bt_cheng_onClick bt_cheng1 = new bt_cheng_onClick();
     74         bt_chu_onClick bt_chu1 = new bt_chu_onClick();
     75         bt_deng_onClick bt_deng1 = new bt_deng_onClick();
     76         bt_c_onClick bt_c1 = new bt_c_onClick();
     77         bt_tui_onClick bt_tui1 = new bt_tui_onClick();
     78 
     79         bt0.setOnClickListener(bt_l);
     80         bt1.setOnClickListener(bt_l);
     81         bt2.setOnClickListener(bt_l);
     82         bt3.setOnClickListener(bt_l);
     83         bt4.setOnClickListener(bt_l);
     84         bt5.setOnClickListener(bt_l);
     85         bt6.setOnClickListener(bt_l);
     86         bt7.setOnClickListener(bt_l);
     87         bt8.setOnClickListener(bt_l);
     88         bt9.setOnClickListener(bt_l);
     89         bt_dian.setOnClickListener(bt_dian1);
     90         bt_jia.setOnClickListener(bt_jia1);
     91         bt_jian.setOnClickListener(bt_jian1);
     92         bt_chu.setOnClickListener(bt_chu1);
     93         bt_cheng.setOnClickListener(bt_cheng1);
     94         bt_deng.setOnClickListener(bt_deng1);
     95         bt_c.setOnClickListener(bt_c1);
     96         bt_tui.setOnClickListener(bt_tui1);
     97     }
     98     class bt_onClick implements View.OnClickListener
     99     {
    100         @Override
    101         public void onClick(View v) {
    102             if (s5 == 1) {
    103                 tv_1.setText(null);
    104                 s1 = 0;
    105                 s2 = 0;
    106                 s3 = 0;
    107                 s4 = 0;
    108                 s5 = 0;
    109             }
    110             String str = tv_1.getText().toString();
    111             //转成按钮
    112             Button bt = (Button)v;
    113             //取得按钮上的文字
    114             String str2 = bt.getText().toString();
    115             str += str2;
    116             tv_1.setText(str);
    117         }
    118     }
    119     class bt_dian_onClick implements View.OnClickListener {
    120         public void onClick(View v) {
    121             if(s5==1)
    122             {
    123                 tv_1.setText(null);
    124                 s1=0;
    125                 s2=0;
    126                 s3=0;
    127                 s4=0;
    128                 s5=0;
    129             }
    130 
    131             if(s6==1)
    132             {
    133                 return;
    134             }
    135             Button bt = (Button) v;
    136             String str = tv_1.getText().toString();
    137 
    138             if(str.length()==0||str.equals("0.")){
    139                 tv_1.setText("0.");
    140                 return;
    141             }
    142 
    143             String str2 = bt.getText().toString();
    144             str += str2;
    145             tv_1.setText(str);
    146             s6=1;
    147         }
    148     }
    149     class bt_jia_onClick implements View.OnClickListener
    150     {
    151         @Override
    152         public void onClick(View v) {
    153             s5 = 0;
    154             String str=tv_1.getText().toString();
    155             if (str.length()==0)
    156             {
    157                 return;
    158             }
    159             if (s1 == 0) {
    160                 s1 = Double.parseDouble(str);
    161 
    162             } else {
    163                 s3 = Double.parseDouble(str);
    164                 if (s2 == 0)
    165                 {
    166                     s1 = s3;
    167                 }
    168                 if (s2 == 1)
    169                 {
    170                     s1 += s3;
    171                 }
    172                 if (s2 == 2)
    173                 {
    174                     s1 -= s3;
    175                 }
    176                 if (s2 == 3)
    177                 {
    178                     s1 *= s3;
    179                 }
    180                 if (s2==4&&s3!=0)
    181                 {
    182                     s1 /= s3;
    183                 }
    184                 if (s2==4&&s3==0)
    185                 {
    186                     s1=0;
    187                     s2=0;
    188                     s3=0;
    189                     s4=0;
    190                     s5=0;
    191                 }
    192             }
    193             tv_1.setText(null);
    194             s2 = 1;
    195             s6=0;
    196         }
    197     }
    198     class bt_jian_onClick implements View.OnClickListener
    199     {
    200         @Override
    201         public void onClick(View v) {
    202             s5 = 0;
    203             String str=tv_1.getText().toString();
    204             if (str.length()==0)
    205             {
    206                 return;
    207             }
    208             if (s1 == 0) {
    209                 s1 = Double.parseDouble(str);
    210 
    211             } else {
    212                 s3 = Double.parseDouble(str);
    213                 if (s2 == 0)
    214                 {
    215                     s1 = s3;
    216                 }
    217                 if (s2 == 1)
    218                 {
    219                     s1 += s3;
    220                 }
    221                 if (s2 == 2)
    222                 {
    223                     s1 -= s3;
    224                 }
    225                 if (s2 == 3)
    226                 {
    227                     s1 *= s3;
    228                 }
    229                 if (s2==4&&s3!=0)
    230                 {
    231                     s1 /= s3;
    232                 }
    233                 if (s2==4&&s3==0)
    234                 {
    235                     s1=0;
    236                     s2=0;
    237                     s3=0;
    238                     s4=0;
    239                     s5=0;
    240                 }
    241             }
    242             tv_1.setText(null);
    243             s2 = 2;
    244             s6=0;
    245         }
    246     }
    247     class bt_cheng_onClick implements View.OnClickListener
    248     {
    249         @Override
    250         public void onClick(View v) {
    251             s5 = 0;
    252             String str=tv_1.getText().toString();
    253             if (str.length()==0)
    254             {
    255                 return;
    256             }
    257             if (s1 == 0) {
    258                 s1 = Double.parseDouble(str);
    259 
    260             } else {
    261                 s3 = Double.parseDouble(str);
    262                 if (s2 == 0)
    263                 {
    264                     s1 = s3;
    265                 }
    266                 if (s2 == 1)
    267                 {
    268                     s1 += s3;
    269                 }
    270                 if (s2 == 2)
    271                 {
    272                     s1 -= s3;
    273                 }
    274                 if (s2 == 3)
    275                 {
    276                     s1 *= s3;
    277                 }
    278                 if (s2==4&&s3!=0)
    279                 {
    280                     s1 /= s3;
    281                 }
    282                 if (s2==4&&s3==0)
    283                 {
    284                     s1=0;
    285                     s2=0;
    286                     s3=0;
    287                     s4=0;
    288                     s5=0;
    289                 }
    290             }
    291             tv_1.setText(null);
    292             s2 = 3;
    293             s6=0;
    294         }
    295     }
    296     class bt_chu_onClick implements View.OnClickListener
    297     {
    298         @Override
    299         public void onClick(View v) {
    300             s5 = 0;
    301             String str=tv_1.getText().toString();
    302             if (str.length()==0)
    303             {
    304                 return;
    305             }
    306             if (s1 == 0) {
    307                 s1 = Double.parseDouble(str);
    308 
    309             } else {
    310                 s3 = Double.parseDouble(str);
    311                 if (s2 == 0)
    312                 {
    313                     s1 = s3;
    314                 }
    315                 if (s2 == 1)
    316                 {
    317                     s1 += s3;
    318                 }
    319                 if (s2 == 2)
    320                 {
    321                     s1 -= s3;
    322                 }
    323                 if (s2 == 3)
    324                 {
    325                     s1 *= s3;
    326                 }
    327                 if (s2==4&&s3!=0)
    328                 {
    329                     s1 /= s3;
    330                 }
    331                 if (s2==4&&s3==0)
    332                 {
    333                     s1=0;
    334                     s2=0;
    335                     s3=0;
    336                     s4=0;
    337                     s5=0;
    338                 }
    339             }
    340             tv_1.setText(null);
    341             s2 = 4;
    342             s6=0;
    343         }
    344     }
    345     class bt_deng_onClick implements View.OnClickListener {
    346         public void onClick(View v) {
    347             String str = tv_1.getText().toString();
    348             if(str.length()==0)
    349             {
    350                 return;
    351             }
    352             s3 = Double.parseDouble(str);
    353             if(s3==0&&s2==4)
    354             {
    355                 return;
    356             }
    357             if(s2==0)
    358             {
    359                 s4=s3;
    360             }
    361             if(s2==1)
    362             {
    363                 s4=s1+s3;
    364             }
    365             if(s2==2)
    366             {
    367                 s4=s1-s3;
    368             }
    369             if(s2==3)
    370             {
    371                 s4=s1*s3;
    372             }
    373             if(s2==4&&s3!=0)
    374             {
    375                 s4=s1/s3;
    376             }
    377             if (s2==4&&s3==0)
    378             {
    379                 s1=0;
    380                 s2=0;
    381                 s3=0;
    382                 s4=0;
    383                 s5=0;
    384             }
    385             String str2=s4+"";
    386             tv_1.setText(str2);
    387             s5=1;
    388             s2=0;
    389             s6=0;
    390         }
    391     }
    392     class bt_c_onClick implements View.OnClickListener {
    393         public void onClick(View v) {
    394             s1=0;
    395             s2=0;
    396             s3=0;
    397             s5=0;
    398             s4=0;
    399             s6=0;
    400             tv_1.setText(null);
    401         }
    402     }
    403     class bt_tui_onClick implements View.OnClickListener {
    404         public void onClick(View v) {
    405 
    406             String str = tv_1.getText().toString();
    407             if (str.length() == 0) {
    408                 return;
    409             }
    410             String str2 = str.substring(0, str.length() - 1);
    411             tv_1.setText(str2);
    412             if (s5 == 1) {
    413                 s5 = 0;
    414             }
    415         }
    416     }
    417 }

    可实现计算器的基本运算功能

    感谢@storm47给予我的帮助

  • 相关阅读:
    基本配置+路由系统+模板
    ORM之SQLAlchemy
    web应用+250斗笔式模拟框架(socket、pymysql、jinja2)
    Leetcode56. Merge Intervals合并区间
    Leetcode50. Pow(x, n)(快速幂)
    Leetcode43. Multiply Strings字符串相乘(大数相乘)
    (转)Json在Unity中的简单使用
    Leetcode49. Group Anagrams字母异位词分组
    Leetcode48. Rotate Image旋转图像
    Leetcode47. Permutations II全排列2
  • 原文地址:https://www.cnblogs.com/hanazawalove/p/5503184.html
Copyright © 2020-2023  润新知