第一个安卓app——计算器

Posted XiaoGao128

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个安卓app——计算器相关的知识,希望对你有一定的参考价值。

 

几天前,我花了一天时间,结合这段时间所学知识开发出了一个简单的计算器,它由两个TextView和23个Button组成,代码会放在文章结尾。

 

 

TextView

TextView:上面一个TextView的功能是记录运算过程,其中运算符的显示顺序是输入顺序也是运算顺序/*即1+2×3为(1+2)×3*/,

下面一个TextView功能是显示运算结果和显示输入的运算数据。

 

Button

AC键:功能是清除运算记录,将所有变量重置。

 

 

 

BC键:功能是返回上一步运算结果,在每一步运算结束后,会将这一步的运算结果存储在ArrayList中,BC之后会将Arraylist中最近一次的运算记录也就是返回的这步运算记录删除,以实现随意回调的效果。

 

 

 

+/-键:功能是将现在输入框中的数据转为它的相反数

 

DEL键:功能是退格,在输入数据不是小数时,退格的实现方式是输入框中数据除十得到结果,在输入数据是小数时退格的实现方式是获取输入框中的字符串减去末尾数字字符得到结果。

 

0~9数字键:进行数字键输入操作时,会对当前是否正在输入小数进行判断,如果是,则这样将

double num = 1;
pointnum++;//小数点后输入的位数
for (int i = 0; i < pointnum; i++)
    num /= 10;
init += key* num;//当前key的值*位数

的确是繁琐!

推荐第二种做法直接将key拼接到输入框字符串的尾部即可!

    

四则运算键:在四则运算前都会对前一个输入是否为其他四则运算符进行判断。如果是,则将前一个四则运算符替换为当前的。进行每一个运算符在被点击之后都会储存起来,在下一个运算符或等于键被点击时(即下一个需要运算的数据输入完毕时)进行运算,并将此时被点击的运算符存储起来以供下次运算使用。

 

%键:进行求余运算,与四则运算类似。

 

x²键:对当前输入框中的数据进行平方操作。

 

√x键:对当前输入框中的数据进行开平方操作。

 

 

 

小数点键:将当前输入状态设置为小数输入。

 

 

 

关于这个程序的反省:

*在这个程序中我对输入框中的输入等操作大多是以double数据的运算实现的,在写完之后我突然意识到其实输入等很多功能的实现用字符串操作会省很多功夫,像DEL退格的实现以及小数点的等等操作用字符串进行操作确实会容易很多,不需要做那么多运算,在用的时候直接把字符串转换为所需数据类型即可!

 

*关于界面布局的看法:

在刚开始写这个程序布局的时候我只用了一个RelativeLayout就写了下来,在虚拟机上看起来布局很好,但放到其他型号的手机里布局就不行了,今天我对它的布局做了优化,用的是一个大的LinearLayout里面框住两个文本框和一个小的LinearLayout框住五个更小的LinearLayout,然后为他们各自设置match_parent和layout_weight,五个更小的LinearLayout每个各占match_parent/5,在更小的的LinearLayout里为里面的键设置layoutweight,避免了直接使用dp等数字,保证它可以占满整个屏幕或者确定的那一部分,使之在其他机型上也能美观地展示。

 

activity_calculator.xml

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3     xmlns:tools="http://schemas.android.com/tools"
  4     android:layout_width="match_parent"
  5     android:layout_height="match_parent"
  6     tools:context="com.Appalication_Trial.Calculator">
  7 
  8     <TextView
  9         android:id="@+id/tv_cord"
 10         android:layout_width="match_parent"
 11         android:layout_height="99dp"
 12         android:background="@drawable/riple_btn_pink"
 13         android:gravity="right"
 14         android:textSize="30dp"></TextView>
 15 
 16     <TextView
 17         android:id="@+id/tv_calcul"
 18         android:layout_width="match_parent"
 19         android:layout_height="99dp"
 20         android:layout_below="@+id/tv_cord"
 21         android:background="@drawable/riple_btn_pink"
 22         android:gravity="right"
 23         android:textSize="30dp"></TextView>
 24     <LinearLayout
 25         android:layout_width="match_parent"
 26         android:layout_height="match_parent"
 27         android:layout_below="@id/tv_calcul"
 28         android:orientation="vertical"
 29         android:gravity="center">
 30         <LinearLayout
 31             android:layout_width="match_parent"
 32             android:layout_height="0dp"
 33             android:layout_weight="1"
 34             android:orientation="horizontal"
 35             ><Button
 36             android:id="@+id/calcul_btn_ac"
 37             android:layout_width="70dp"
 38             android:layout_height="match_parent"
 39             android:layout_marginTop="0dp"
 40             android:background="@drawable/riple_btn_nocorner"
 41             android:fontFamily="宋体"
 42             android:text="AC"
 43             android:textSize="40dp"
 44             android:layout_weight="1"
 45             android:textColor="#169FDF"
 46             ></Button>
 47             <Button
 48                 android:id="@+id/calcul_btn_back"
 49                 android:layout_width="70dp"
 50                 android:layout_height="match_parent"
 51                 android:layout_marginTop="0dp"
 52                 android:layout_toRightOf="@id/calcul_btn_ac"
 53                 android:background="@drawable/riple_btn_nocorner"
 54                 android:fontFamily="宋体"
 55                 android:text="bc"
 56                 android:textColor="#169FDF"
 57                 android:layout_weight="1"
 58                 android:textSize="40dp"></Button>
 59             <Button
 60                 android:id="@+id/calcul_btn_neg"
 61                 android:layout_width="70dp"
 62                 android:layout_height="match_parent"
 63                 android:layout_marginTop="0dp"
 64                 android:background="@drawable/riple_btn_nocorner"
 65                 android:text="+/-"
 66                 android:textSize="40dp"
 67                 android:textColor="#169FDF"
 68                 android:layout_weight="1"
 69                 android:fontFamily="宋体"></Button>
 70             <Button
 71                 android:id="@+id/calcul_btn_del"
 72                 android:layout_width="140dp"
 73                 android:layout_height="match_parent"
 74                 android:layout_marginTop="0dp"
 75                 android:background="@drawable/riple_btn_nocorner"
 76                 android:text="del"
 77                 android:textSize="30dp"
 78                 android:textColor="#169FDF"
 79                 android:layout_weight="2"
 80                 android:fontFamily="宋体"></Button>
 81 
 82         </LinearLayout>
 83         <LinearLayout
 84             android:layout_width="match_parent"
 85             android:layout_weight="1"
 86             android:layout_height="0dp"
 87             android:orientation="horizontal"
 88             >
 89             <Button
 90                 android:id="@+id/calcul_btn_1"
 91                 android:layout_width="70dp"
 92                 android:layout_height="match_parent"
 93                 android:layout_marginTop="0dp"
 94                 android:background="@drawable/riple_btn_nocorner"
 95                 android:fontFamily="宋体"
 96                 android:text="1"
 97                 android:layout_weight="1"
 98                 android:textColor="#169FDF"
 99                 android:textSize="40dp"></Button>
100             <Button
101                 android:id="@+id/calcul_btn_2"
102                 android:layout_width="70dp"
103                 android:layout_height="match_parent"
104                 android:layout_marginTop="0dp"
105                 android:background="@drawable/riple_btn_nocorner"
106                 android:text="2"
107                 android:layout_weight="1"
108                 android:textSize="40dp"
109                 android:textColor="#169FDF"
110                 android:fontFamily="宋体"></Button>
111             <Button
112                 android:id="@+id/calcul_btn_3"
113                 android:layout_width="70dp"
114                 android:layout_height="match_parent"
115                 android:layout_marginTop="0dp"
116                 android:background="@drawable/riple_btn_nocorner"
117                 android:text="3"
118                 android:textSize="40dp"
119                 android:textColor="#169FDF"
120                 android:layout_weight="1"
121                 android:fontFamily="宋体"></Button>
122             <Button
123                 android:id="@+id/calcul_btn_pf"
124                 android:layout_width="70dp"
125                 android:layout_height="match_parent"
126                 android:layout_below="@id/calcul_btn_back"
127                 android:layout_marginTop="0dp"
128                 android:layout_toRightOf="@id/calcul_btn_9"
129                 android:background="@drawable/riple_btn_nocorner"
130                 android:text="x²"
131                 android:textAllCaps="false"
132                 android:textSize="30dp"
133                 android:textColor="#169FDF"
134                 android:layout_weight="1"
135                 android:fontFamily="宋体"></Button>
136             <Button
137                 android:id="@+id/calcul_btn_sqrt"
138                 android:layout_width="70dp"
139                 android:layout_height="match_parent"
140                 android:layout_below="@id/calcul_btn_back"
141                 android:layout_marginTop="0dp"
142                 android:layout_toRightOf="@id/calcul_btn_pf"
143                 android:background="@drawable/riple_btn_nocorner"
144                 android:text="√x"
145                 android:textAllCaps="false"
146                 android:textSize="30dp"
147                 android:textColor="#169FDF"
148                 android:layout_weight="1"
149                 android:fontFamily="宋体"></Button>
150 
151         </LinearLayout>
152         <LinearLayout
153             android:layout_width="match_parent"
154             android:layout_weight="1"
155             android:layout_height="0dp"
156             android:orientation="horizontal"
157             >
158             <Button
159                 android:id="@+id/calcul_btn_4"
160                 android:layout_width="70dp"
161                 android:layout_height="match_parent"
162                 android:layout_marginTop="0dp"
163                 android:background="@drawable/riple_btn_nocorner"
164                 android:text="4"
165                 android:textSize="40dp"
166                 android:layout_weight="1"
167                 android:textColor="#169FDF"
168                 android:fontFamily="宋体"></Button>
169             <Button
170                 android:id="@+id/calcul_btn_5"
171                 android:layout_width="70dp"
172                 android:layout_height="match_parent"
173                 android:layout_marginTop="0dp"
174                 android:background="@drawable/riple_btn_nocorner"
175                 android:text="5"
176                 android:textSize="40dp"
177                 android:textColor="#169FDF"
178                 android:layout_weight="1"
179                 android:fontFamily="宋体"></Button>
180             <Button
181                 android:id="@+id/calcul_btn_6"
182                 android:layout_width="70dp"
183                 android:layout_height="match_parent"
184                 android:layout_marginTop="0dp"
185                 android:background="@drawable/riple_btn_nocorner"
186                 android:text="6"
187                 android:textSize="40dp"
188                 android:textColor="#169FDF"
189                 android:layout_weight="1"
190                 android:fontFamily="宋体"></Button>
191             <Button
192                 android:id="@+id/calcul_btn_add"
193                 android:layout_width="70dp"
194                 android:layout_height="match_parent"
195                 android:layout_marginTop="0dp"
196                 android:background="@drawable/riple_btn_nocorner"
197                 android:text="+"
198                 android:textSize="40dp"
199                 android:textColor="#169FDF"
200                 android:fontFamily="宋体"
201                 android:layout_weight="1"
202                 ></Button>
203             <Button
204                 android:id="@+id/calcul_btn_multiply"
205                 android:layout_width="70dp"
206                 android:layout_height="match_parent"
207                 android:layout_weight="1"
208                 android:layout_marginTop="0dp"
209                 android:background="@drawable/riple_btn_nocorner"
210                 android:text="×"
211                 android:textSize="40dp"
212                 android:textColor="#169FDF"
213                 android:fontFamily="宋体"></Button></LinearLayout>
214         <LinearLayout
215             android:layout_width="match_parent"
216             android:layout_weight="1"
217             android:layout_height="0dp"
218             android:orientation="horizontal"
219             >
220           
221             <Button
222                 android:id="@+id/calcul_btn_7"
223                 android:layout_width="70dp"
224                 android:layout_height="match_parent"
225                 android:layout_below="@id/calcul_btn_4"
226                 android:layout_marginTop="0dp"
227                 android:layout_toLeftOf="@id/calcul_btn_5"
228                 android:background="@drawable/riple_btn_nocorner"
229                 android:text="7"
230                 android:textSize="40dp"
231                 android:layout_weight="1"
232                 android:textColor="#169FDF"
233                 android:fontFamily="宋体"></Button>
234             <Button
235                 android:id="@+id/calcul_btn_8"
236                 android:layout_width="70dp"
237                 android:layout_height="match_parent"
238                 android:layout_below="@id/calcul_btn_5"
239                 android:layout_marginTop="0dp"
240                 android:layout_toRightOf="@id/calcul_btn_7"
241                 android:background="@drawable/riple_btn_nocorner"
242                 android:text="8"
243                 android:layout_weight="1"
244                 android:textSize="40dp"
245                 android:textColor="#169FDF"
246                 android:fontFamily="宋体"></Button>
247             <Button
248                 android:id="@+id/calcul_btn_9"
249                 android:layout_width="70dp"
250                 android:layout_height="match_parent"
251                 android:layout_below="@id/calcul_btn_6"
252                 android:layout_marginTop="0dp"
253                 android:layout_toRightOf="@id/calcul_btn_8"
254                 android:background="@drawable/riple_btn_nocorner"
255                 android:text="9"
256                 android:layout_weight="1"
257                 android:textColor="#169FDF"
258                 android:textSize="40dp"
259                 android:fontFamily="宋体"></Button>
260             <Button
261                 android:id="@+id/calcul_btn_sub"
262                 android:layout_width="70dp"
263                 android:layout_height="match_parent"
264                 android:layout_marginTop="0dp"
265                 android:background="@drawable/riple_btn_nocorner"
266                 android:text="-"
267                 android:textSize="40dp"
268                 android:textColor="#169FDF"
269                 android:layout_weight="1"
270                 android:fontFamily="宋体"></Button>
271             <Button
272                 android:id="@+id/calcul_btn_divide"
273                 android:layout_width="70dp"
274                 android:layout_height="match_parent"
275                 android:layout_marginTop="0dp"
276                 android:background="@drawable/riple_btn_nocorner"
277                 android:layout_weight="1"
278                 android:text="÷"
279                 android:textSize="40dp"
280                 android:textColor="#169FDF"
281                 android:fontFamily="宋体"></Button>
282         </LinearLayout>
283         <LinearLayout
284             android:layout_width="match_parent"
285             android:layout_weight="1"
286             android:layout_height="0dp"
287             android:orientation="horizontal"
288             >
289             <Button
290                 android:id="@+id/calcul_btn_rem"
使用 onBackPressed 仅从第一个片段退出 App

安卓studio已经成功在机子上运行了一个app,怎么让代码第二次运行安装时不是覆盖已经有的app。

安卓第十天笔记-fragment

第一个安卓程序代码

第一个月总结

java 代码片段【安卓】