• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

安卓小程序(一)计算器

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    经过了大概四个晚上的学习,终于做出了一个小东西,从小白慢慢学到了一些东西:

1.布局的嵌套使用

2.EditText、Button等属性的使用

3.使用时需要先声明,再实例化,按钮需要设置点击事件

4.通过onclick函数来设置点击按钮的作用

5.国际化要把汉字放入string.xml中,从中调用

布局代码:

 

  1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2     xmlns:tools="http://schemas.android.com/tools"
  3     android:id="@+id/LinearLayout1"
  4     android:layout_width="match_parent"
  5     android:layout_height="match_parent"
  6     android:orientation="vertical"
  7     android:paddingBottom="@dimen/activity_vertical_margin"
  8     android:paddingLeft="@dimen/activity_horizontal_margin"
  9     android:paddingRight="@dimen/activity_horizontal_margin"
 10     android:paddingTop="@dimen/activity_vertical_margin"
 11     tools:context=".MainActivity" >
 12 
 13     <LinearLayout
 14         android:layout_width="match_parent"
 15         android:layout_height="wrap_content"
 16         android:orientation="horizontal" />
 17 
 18     <EditText 
 19         android:id="@+id/et_content"
 20         android:layout_width="match_parent"
 21         android:layout_height="60dip"
 22         android:background="@drawable/white_bg"
 23         android:orientation="horizontal"
 24         android:gravity="right|bottom"
 25         />
 26     <LinearLayout
 27         android:layout_width="fill_parent"
 28         android:layout_height="wrap_content"
 29         android:layout_marginTop="20dp"
 30         android:orientation="horizontal" >
 31 
 32         <Button
 33             android:id="@+id/btn_Clear"
 34             android:layout_width="60dp"
 35             android:layout_height="60dp"
 36             android:gravity="right|bottom"
 37             android:text="C"
 38             android:textSize="20sp" />
 39 
 40         <Button
 41             android:id="@+id/btn_Delete"
 42             android:layout_width="60dp"
 43             android:layout_height="60dp"
 44             android:layout_marginLeft="10dp"
 45             android:gravity="right|bottom"
 46             android:text="DEL"
 47             android:textSize="20sp" />
 48 
 49         <Button
 50             android:id="@+id/btn_divide"
 51             android:layout_width="60dp"
 52             android:layout_height="60dp"
 53             android:layout_marginLeft="10dp"
 54             android:gravity="right|bottom"
 55             android:text="/"
 56             android:textSize="20sp" />
 57 
 58         <Button
 59             android:id="@+id/btn_mut"
 60             android:layout_width="60dp"
 61             android:layout_height="60dp"
 62             android:layout_marginLeft="10dp"
 63             android:gravity="right|bottom"
 64             android:text="*"
 65             android:textSize="20sp" />
 66     </LinearLayout>
 67 
 68     <LinearLayout
 69         android:layout_width="fill_parent"
 70         android:layout_height="wrap_content"
 71         android:layout_marginTop="10dp"
 72         android:orientation="horizontal" >
 73 
 74         <Button
 75             android:id="@+id/btn_7"
 76             android:layout_width="60dp"
 77             android:layout_height="60dp"
 78             android:gravity="right|bottom"
 79             android:text="7"
 80             android:textSize="20sp" />
 81 
 82         <Button
 83             android:id="@+id/btn_8"
 84             android:layout_width="60dp"
 85             android:layout_height="60dp"
 86             android:layout_marginLeft="10dp"
 87             android:gravity="right|bottom"
 88             android:text="8"
 89             android:textSize="20sp" />
 90 
 91         <Button
 92             android:id="@+id/btn_9"
 93             android:layout_width="60dp"
 94             android:layout_height="60dp"
 95             android:layout_marginLeft="10dp"
 96             android:gravity="right|bottom"
 97             android:text="9"
 98             android:textSize="20sp" />
 99 
100         <Button
101             android:id="@+id/btn_minus"
102             android:layout_width="60dp"
103             android:layout_height="60dp"
104             android:layout_marginLeft="10dp"
105             android:gravity="right|bottom"
106             android:text="-"
107             android:textSize="20sp" />
108     </LinearLayout>
109 
110     
111       <LinearLayout
112         android:layout_width="fill_parent"
113         android:layout_height="wrap_content"
114         android:layout_marginTop="10dp"
115         android:orientation="horizontal" >
116 
117         <Button
118             android:id="@+id/btn_4"
119             android:layout_width="60dp"
120             android:layout_height="60dp"
121             android:gravity="right|bottom"
122             android:text="4"
123             android:textSize="20sp" />
124 
125         <Button
126             android:id="@+id/btn_5"
127             android:layout_width="60dp"
128             android:layout_height="60dp"
129             android:layout_marginLeft="10dp"
130             android:gravity="right|bottom"
131             android:text="5"
132             android:textSize="20sp" />
133 
134         <Button
135             android:id="@+id/btn_6"
136             android:layout_width="60dp"
137             android:layout_height="60dp"
138             android:layout_marginLeft="10dp"
139             android:gravity="right|bottom"
140             android:text="6"
141             android:textSize="20sp" />
142 
143         <Button
144             android:id="@+id/btn_plus"
145             android:layout_width="60dp"
146             android:layout_height="60dp"
147             android:layout_marginLeft="10dp"
148             android:gravity="right|bottom"
149             android:text="+"
150             android:textSize="20sp" />
151     </LinearLayout>
152     
153         <LinearLayout 
154             android:layout_width="fill_parent"
155             android:layout_height="wrap_content"
156             android:orientation="horizontal"
157             android:layout_marginTop="10dp"
158             >
159             
160             <LinearLayout 
161             android:layout_width="wrap_content"
162             android:layout_height="wrap_content"
163             android:orientation="vertical"
164             >
165             <LinearLayout 
166                 android:layout_width="wrap_content"
167                 android:layout_height="wrap_content"
168                 android:orientation="horizontal"
169                 >
170                 <Button
171                     android:id="@+id/btn_1"
172                     android:layout_width="60dp"
173                     android:layout_height="60dp"
174                     android:gravity="right|bottom"
175                     android:text="1"
176                     android:textSize="20sp" />
177 
178                 <Button
179                     android:id="@+id/btn_2"
180                     android:layout_width="60dp"
181                     android:layout_height="60dp"
182                     android:layout_marginLeft="10dp"
183                     android:gravity="right|bottom"
184                     android:text="2"
185                     android:textSize="20sp" />
186                 
187                 <Button
188             android:id="@+id/btn_3"
189             android:layout_width="60dp"
190             android:layout_height="60dp"
191             android:layout_marginLeft="10dp"
192             android:gravity="right|bottom"
193             android:text="3"
194             android:textSize="20sp" />
195             </LinearLayout>
196            <LinearLayout 
197         android:layout_width="fill_parent"
198         android:layout_height="wrap_content"
199         android:layout_marginTop="10dp"
200         android:orientation="horizontal">
201 
202                <Button
203                    android:id="@+id/btn_0"
204                    android:layout_width="130dp"
205                    android:layout_height="60dp"
206                    android:gravity="right|bottom"
207                    android:text="0"
208                    android:textSize="20sp" />
209                 
210             <Button
211             android:id="@+id/btn_point"
212             android:layout_width="60dp"
213             android:layout_height="60dp"
214             android:layout_marginLeft="10dp"
215             android:gravity="right|bottom"
216             android:text="."
217             android:textSize="20sp" />
218            </LinearLayout>
219         </LinearLayout>
220 
221             <Button
222                 android:id="@+id/btn_equal"
223                 android:layout_width="60dp"
224                 android:layout_height="130dp"
225                 android:text="="
226                 android:layout_marginLeft="10dp"
227                 android:textSize="20sp" />
228 
229 </LinearLayout>
230 </LinearLayout>

 

  主函数MainActivity.java

  1 package com.brucekun.calculator;
  2 
  3 import android.R.string;
  4 import android.os.Bundle;
  5 import android.app.Activity;
  6 import android.view.Menu;
  7 import android.view.View;
  8 import android.view.View.OnClickListener;
  9 import android.widget.Button;
 10 import android.widget.EditText;
 11 
 12 public class MainActivity extends Activity implements OnClickListener{
 13 
 14     Button btn_0;
 15     Button btn_1;
 16     Button btn_2;
 17     Button btn_3;
 18     Button btn_4;
 19     Button btn_5;
 20     Button btn_6;
 21     Button btn_7;
 22     Button btn_8;
 23     Button btn_9;
 24     Button btn_point;
 25     Button btn_clear;
 26     Button btn_delete;
 27     Button btn_del;
 28     Button btn_plus;
 29     Button btn_minus;
 30     Button btn_multiply;
 31     Button btn_divide;
 32     Button btn_equle;
 33     EditText et_input;//显示输入内容的显示屏
 34     boolean clear_flag;//清空标识
 35     
 36     @Override
 37     protected void onCreate(Bundle savedInstanceState) {
 38         super.onCreate(savedInstanceState);
 39         setContentView(R.layout.activity_main);
 40         //实例化按钮
 41         btn_0=(Button) findViewById(R.id.btn_0);
 42         btn_1=(Button) findViewById(R.id.btn_1);
 43         btn_2=(Button) findViewById(R.id.btn_2);
 44         btn_3=(Button) findViewById(R.id.btn_3);
 45         btn_4=(Button) findViewById(R.id.btn_4);
 46         btn_5=(Button) findViewById(R.id.btn_5);
 47         btn_6=(Button) findViewById(R.id.btn_6);
 48         btn_7=(Button) findViewById(R.id.btn_7);
 49         btn_8=(Button) findViewById(R.id.btn_8);
 50         btn_9=(Button) findViewById(R.id.btn_9);
 51         btn_point=(Button) findViewById(R.id.btn_point);
 52         btn_equle=(Button) findViewById(R.id.btn_equal);
 53         btn_plus=(Button) findViewById(R.id.btn_plus);
 54         btn_minus=(Button) findViewById(R.id.btn_minus);
 55         btn_multiply=(Button) findViewById(R.id.btn_mut);
 56         btn_divide=(Button) findViewById(R.id.btn_divide);
 57         //实例化显示屏
 58         et_input=(EditText) findViewById(R.id.et_content);
 59         //设置按钮的点击事件
 60         btn_0.setOnClickListener(this);
 61         btn_1.setOnClickListener(this);
 62         btn_2.setOnClickListener(this);
 63         btn_3.setOnClickListener(this);
 64         btn_4.setOnClickListener(this);
 65         btn_5.setOnClickListener(this);
 66         btn_6.setOnClickListener(this);
 67         btn_7.setOnClickListener(this);
 68         btn_8.setOnClickListener(this);
 69         btn_9.setOnClickListener(this);
 70         btn_point.setOnClickListener(this);
 71         btn_equle.setOnClickListener(this);
 72         btn_plus.setOnClickListener(this);
 73         btn_minus.setOnClickListener(this);
 74         btn_multiply.setOnClickListener(this);
 75         btn_divide.setOnClickListener(this);
 76     }
 77 
 78     @Override
 79     public boolean onCreateOptionsMenu(Menu menu) {
 80         // Inflate the menu; this adds items to the action bar if it is present.
 81         getMenuInflater().inflate(R.menu.main, menu);
 82         return true;
 83     }
 84 
 85     @Override
 86     public void onClick(View v) {
 87         String str=et_input.getText().toString();
 88         switch(v.getId()){
 89         case R.id.btn_0:
 90         case R.id.btn_1:
 91         case R.id.btn_2:
 92         case R.id.btn_3:
 93         case R.id.btn_4:
 94         case R.id.btn_5:
 95         case R.id.btn_6:
 96         case R.id.btn_7:
 97         case R.id.btn_8:
 98         case R.id.btn_9:
 99         case R.id.btn_point:
100             if(clear_flag){
101                 clear_flag=false;
102                 str="";
103                 et_input.setText("");
104             }
105         et_input.setText(str+((Button)v).getText());
106         break;
107         case R.id.btn_plus:
108         case R.id.btn_divide:
109             if(clear_flag){
110                 clear_flag=false;
111                 et_input.setText("");
112             }
113         case R.id.btn_mut:
114         case R.id.btn_minus:
115             et_input.setText(str+" "+((Button)v).getText()+" ");
116             break;
117         case R.id.btn_Clear:
118             clear_flag=false;
119             str="";
120             et_input.setText(""); 
121         case R.id.btn_Delete:
122             if(clear_flag){
123                 clear_flag=false;
124                 str="";
125                 et_input.setText("");
126             }else if(str!=null&&!str.equals("")){
127                 et_input.setText(str.substring(0, str.length()-1));
128             }
129         case R.id.btn_equal:
130             getResult();
131                 break;
132         }
133     }
134     /*
135      * 运算结果
136      */
137 private void getResult(){
138     String exp=et_input.getText().toString();
139     if(exp==null||exp.equals("")){
140         return;
141     }
142     if(!exp.contains(" ")){
143         return;
144     }
145     if(clear_flag){
146         clear_flag=false;
147         return;
148     }
149     clear_flag=true;
150     String s1=exp.substring(0, exp.indexOf(" "));//运算符前面的字符串
151     String op=exp.substring(exp.indexOf(" ")+1, exp.indexOf(" ")+2);//运算符
152     String s2=exp.substring(exp.indexOf(" ")+3);//运算符后面的字符串 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
javascript计算器小程序发布时间:2022-07-18
下一篇:
uni与小程序,vue的区别发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap