当前位置:   article > 正文

Android Studio制作一个简单的计算器APP_android studio写一个计算器

android studio写一个计算器

虽然现在我们日常生活中很少用到计算器,但是第一次尝试在Android Studio上做一个计算器

程序设计步骤:
(1)在布局文件中声明编辑文件框EditText,按钮Button等组件。
(2)在MainActivity中获取组件实例。
(3)通过swtich函数,判断输入的内容,并进行相应操作,通过getText()获取文本内容,setText()显示。

程序代码设计:
布局实现:在activi_main.xml中设置。使用线性布局(LinearLayout)与网格布局(GridLayout)来设置界面。在设计区域设置一个4行4列的网格布局,每行划分为均等的16个按钮,分别代表数字0-9,小数点,和运算符加减乘除以及等于号。
 

最终效果图如下:

xml文件:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:layout_marginLeft="30dp"
  8. android:layout_marginTop="16dp"
  9. android:layout_marginRight="30dp"
  10. android:layout_marginBottom="20dp"
  11. android:orientation="vertical"
  12. tools:context=".MainActivity">
  13. <TextView
  14. android:id="@+id/Answer"
  15. android:layout_width="match_parent"
  16. android:layout_height="189dp"
  17. android:layout_weight="0.33"
  18. android:hint="Result"
  19. android:textSize="34sp" />
  20. <LinearLayout
  21. android:layout_width="wrap_content"
  22. android:layout_height="wrap_content">
  23. <Button
  24. android:id="@+id/btn10"
  25. android:layout_width="wrap_content"
  26. android:layout_height="76dp"
  27. android:background="@color/purple_200"
  28. android:text="C"
  29. android:textColor="#F30C4D"
  30. android:textSize="20sp" />
  31. <Button
  32. android:id="@+id/btn11"
  33. android:layout_width="wrap_content"
  34. android:layout_height="76dp"
  35. android:background="@color/purple_200"
  36. android:text="%"
  37. android:textColor="#FF5722"
  38. android:textSize="20sp" />
  39. <Button
  40. android:id="@+id/btn12"
  41. android:layout_width="175dp"
  42. android:layout_height="76dp"
  43. android:background="@color/purple_200"
  44. android:text="Del"
  45. android:textColor="#F30C4D"
  46. android:textSize="20sp" />
  47. </LinearLayout>
  48. <LinearLayout
  49. android:layout_width="wrap_content"
  50. android:layout_height="wrap_content">
  51. <Button
  52. android:id="@+id/btn1"
  53. android:layout_width="wrap_content"
  54. android:layout_height="76dp"
  55. android:background="@color/purple_200"
  56. android:text="1"
  57. android:textSize="26dp" />
  58. <Button
  59. android:id="@+id/btn2"
  60. android:layout_width="wrap_content"
  61. android:layout_height="76dp"
  62. android:background="@color/teal_200"
  63. android:text="2"
  64. android:textSize="26dp" />
  65. <Button
  66. android:id="@+id/btn3"
  67. android:layout_width="wrap_content"
  68. android:layout_height="76dp"
  69. android:background="@color/purple_200"
  70. android:text="3"
  71. android:textSize="26dp" />
  72. <Button
  73. android:id="@+id/btnadd"
  74. android:layout_width="wrap_content"
  75. android:layout_height="77dp"
  76. android:background="#00BCD4"
  77. android:text="+"
  78. android:textColor="#FFEB3B"
  79. android:textSize="26dp" />
  80. </LinearLayout>
  81. <LinearLayout
  82. android:layout_width="wrap_content"
  83. android:layout_height="wrap_content">
  84. <Button
  85. android:id="@+id/btn4"
  86. android:layout_width="wrap_content"
  87. android:layout_height="76dp"
  88. android:background="@color/purple_200"
  89. android:text="4"
  90. android:textSize="26dp" />
  91. <Button
  92. android:id="@+id/btn5"
  93. android:layout_width="wrap_content"
  94. android:layout_height="76dp"
  95. android:background="@color/purple_200"
  96. android:text="5"
  97. android:textSize="26dp" />
  98. <Button
  99. android:id="@+id/btn6"
  100. android:layout_width="wrap_content"
  101. android:layout_height="76dp"
  102. android:background="@color/purple_200"
  103. android:text="6"
  104. android:textSize="26dp" />
  105. <Button
  106. android:id="@+id/btnsub"
  107. android:layout_width="wrap_content"
  108. android:layout_height="76dp"
  109. android:background="@color/purple_200"
  110. android:text="-"
  111. android:textColor="#FFEB3B"
  112. android:textSize="26dp" />
  113. </LinearLayout>
  114. <LinearLayout
  115. android:layout_width="wrap_content"
  116. android:layout_height="wrap_content">
  117. <Button
  118. android:id="@+id/btn7"
  119. android:layout_width="wrap_content"
  120. android:layout_height="76dp"
  121. android:background="@color/purple_200"
  122. android:text="7"
  123. android:textSize="26dp" />
  124. <Button
  125. android:id="@+id/btn8"
  126. android:layout_width="wrap_content"
  127. android:layout_height="76dp"
  128. android:background="@color/purple_200"
  129. android:text="8"
  130. android:textSize="26dp" />
  131. <Button
  132. android:id="@+id/btn9"
  133. android:layout_width="wrap_content"
  134. android:layout_height="76dp"
  135. android:background="@color/purple_200"
  136. android:text="9"
  137. android:textSize="26dp" />
  138. <Button
  139. android:id="@+id/btnmul"
  140. android:layout_width="wrap_content"
  141. android:layout_height="match_parent"
  142. android:background="@color/purple_200"
  143. android:text="×"
  144. android:textColor="#FFEB3B"
  145. android:textSize="26dp" />
  146. </LinearLayout>
  147. <LinearLayout
  148. android:layout_width="wrap_content"
  149. android:layout_height="wrap_content">
  150. <Button
  151. android:id="@+id/btn0"
  152. android:layout_width="wrap_content"
  153. android:layout_height="76dp"
  154. android:background="@color/purple_200"
  155. android:text="0"
  156. android:textColor="#E91E63"
  157. android:textSize="26dp" />
  158. <Button
  159. android:id="@+id/btndot"
  160. android:layout_width="wrap_content"
  161. android:layout_height="76dp"
  162. android:background="@color/purple_200"
  163. android:text="."
  164. android:textSize="26dp" />
  165. <Button
  166. android:id="@+id/btnequel"
  167. android:layout_width="wrap_content"
  168. android:layout_height="76dp"
  169. android:background="@color/purple_200"
  170. android:text="="
  171. android:textColor="#FF5722"
  172. android:textSize="26dp" />
  173. <Button
  174. android:id="@+id/btndiv"
  175. android:layout_width="wrap_content"
  176. android:layout_height="76dp"
  177. android:background="@color/purple_200"
  178. android:text="÷"
  179. android:textColor="#FFEB3B"
  180. android:textSize="26dp" />
  181. </LinearLayout>
  182. </LinearLayout>

java文件: 

  1. package com.example.mycalculater;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.Button;
  6. import android.widget.TextView;
  7. public class MainActivity extends AppCompatActivity {
  8. Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,badd,bsub,bmul,bdiv,bdot,bequal,b10,b12;
  9. TextView ans;
  10. double var1,var2;
  11. boolean add,sub,mul,div,n10;
  12. boolean sq = false;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. b1= (Button) findViewById(R.id.btn1);
  18. b2= (Button) findViewById(R.id.btn2);
  19. b3= (Button) findViewById(R.id.btn3);
  20. b4= (Button) findViewById(R.id.btn4);
  21. b5= (Button) findViewById(R.id.btn5);
  22. b6= (Button) findViewById(R.id.btn6);
  23. b7= (Button) findViewById(R.id.btn7);
  24. b8= (Button) findViewById(R.id.btn8);
  25. b9= (Button) findViewById(R.id.btn9);
  26. b0= (Button) findViewById(R.id.btn0);
  27. badd= (Button) findViewById(R.id.btnadd);
  28. bsub= (Button) findViewById(R.id.btnsub);
  29. bmul= (Button) findViewById(R.id.btnmul);
  30. bdiv= (Button) findViewById(R.id.btndiv);
  31. bdot= (Button) findViewById(R.id.btndot);
  32. bequal= (Button) findViewById(R.id.btnequel);
  33. b10= (Button) findViewById(R.id.btn10);
  34. b12= (Button) findViewById(R.id.btn12);
  35. ans = (TextView) findViewById(R.id.Answer);
  36. b1.setOnClickListener(new View.OnClickListener() {
  37. @Override
  38. public void onClick(View view) {
  39. if(sq==true){
  40. ans.setText(null);
  41. ans.setText(ans.getText()+"1");
  42. sq=false;
  43. }else
  44. ans.setText(ans.getText()+"1");
  45. }
  46. });
  47. b2.setOnClickListener(new View.OnClickListener() {
  48. @Override
  49. public void onClick(View view) {
  50. if(sq==true){
  51. ans.setText(null);
  52. ans.setText(ans.getText()+"2");
  53. sq=false;
  54. }else
  55. ans.setText(ans.getText()+"2");
  56. }
  57. });
  58. b3.setOnClickListener(new View.OnClickListener() {
  59. @Override
  60. public void onClick(View view) {
  61. if(sq==true){
  62. ans.setText(null);
  63. ans.setText(ans.getText()+"3");
  64. sq=false;
  65. }else
  66. ans.setText(ans.getText()+"3");
  67. }
  68. });
  69. b4.setOnClickListener(new View.OnClickListener() {
  70. @Override
  71. public void onClick(View view) {
  72. if(sq==true){
  73. ans.setText(null);
  74. ans.setText(ans.getText()+"4");
  75. sq=false;
  76. }else
  77. ans.setText(ans.getText()+"4");
  78. }
  79. });
  80. b5.setOnClickListener(new View.OnClickListener() {
  81. @Override
  82. public void onClick(View view) {
  83. if(sq==true){
  84. ans.setText(null);
  85. ans.setText(ans.getText()+"5");
  86. sq=false;
  87. }else
  88. ans.setText(ans.getText()+"5");
  89. }
  90. });
  91. b6.setOnClickListener(new View.OnClickListener() {
  92. @Override
  93. public void onClick(View view) {
  94. if(sq==true){
  95. ans.setText(null);
  96. ans.setText(ans.getText()+"6");
  97. sq=false;
  98. }else
  99. ans.setText(ans.getText()+"6");
  100. }
  101. });
  102. b7.setOnClickListener(new View.OnClickListener() {
  103. @Override
  104. public void onClick(View view) {
  105. if(sq==true){
  106. ans.setText(null);
  107. ans.setText(ans.getText()+"7");
  108. sq=false;
  109. }else
  110. ans.setText(ans.getText()+"7");
  111. }
  112. });
  113. b8.setOnClickListener(new View.OnClickListener() {
  114. @Override
  115. public void onClick(View view) {
  116. if(sq==true){
  117. ans.setText(null);
  118. ans.setText(ans.getText()+"8");
  119. sq=false;
  120. }else
  121. ans.setText(ans.getText()+"8");
  122. }
  123. });
  124. b9.setOnClickListener(new View.OnClickListener() {
  125. @Override
  126. public void onClick(View view) {
  127. if(sq==true) {
  128. ans.setText(null);
  129. ans.setText(ans.getText()+"9");
  130. sq=false;
  131. }else
  132. ans.setText(ans.getText()+"9");
  133. }
  134. });
  135. b0.setOnClickListener(new View.OnClickListener() {
  136. @Override
  137. public void onClick(View view) {
  138. if(sq==true){
  139. ans.setText(null);
  140. ans.setText(ans.getText()+"0");
  141. sq=false;
  142. }else
  143. ans.setText(ans.getText()+"0");
  144. }
  145. });
  146. bdot.setOnClickListener(new View.OnClickListener() {
  147. @Override
  148. public void onClick(View view) {
  149. try {
  150. if(ans.getText().toString().contains("."))
  151. ans.setText(ans.getText()+"");
  152. else
  153. ans.setText(ans.getText()+".");
  154. } catch (Exception e) {
  155. ans.setText("出错");
  156. }
  157. }
  158. });
  159. badd.setOnClickListener(new View.OnClickListener() {
  160. @Override
  161. public void onClick(View view) {
  162. try {
  163. var1 = Double.parseDouble(ans.getText()+"");
  164. add=true;
  165. ans.setText(null);
  166. }catch (RuntimeException a){
  167. ans.setText("错误");
  168. sq=true;
  169. }
  170. }
  171. });
  172. bsub.setOnClickListener(new View.OnClickListener() {
  173. @Override
  174. public void onClick(View view) {
  175. try {
  176. var1 = Double.parseDouble(ans.getText()+"");
  177. sub=true;
  178. ans.setText(null);
  179. }catch(RuntimeException a){
  180. ans.setText("错误");
  181. sq=true;
  182. }
  183. }
  184. });
  185. bmul.setOnClickListener(new View.OnClickListener() {
  186. @Override
  187. public void onClick(View view) {
  188. try {
  189. var1 = Double.parseDouble(ans.getText()+"");
  190. mul=true;
  191. ans.setText(null);
  192. }catch(RuntimeException a){
  193. ans.setText("错误");
  194. sq=true;
  195. }
  196. }
  197. });
  198. bdiv.setOnClickListener(new View.OnClickListener() {
  199. @Override
  200. public void onClick(View view) {
  201. /*var1 = Double.parseDouble(ans.getText()+"");
  202. div=true;
  203. ans.setText(null);*/
  204. try {
  205. var1 = Double.parseDouble(ans.getText()+"");
  206. div=true;
  207. ans.setText(null);
  208. }catch(RuntimeException a){
  209. ans.setText("错误");
  210. sq=true;
  211. }
  212. }
  213. });
  214. b10.setOnClickListener(new View.OnClickListener() {
  215. @Override
  216. public void onClick(View view) {
  217. ans.setText(null);
  218. add=false;sub=false;mul=false;div=false;
  219. }
  220. });
  221. b12.setOnClickListener(new View.OnClickListener() {
  222. @Override
  223. public void onClick(View view) {
  224. try {
  225. String temp = "";
  226. temp = ans.getText().toString().substring(0, ans.length() - 1);
  227. ans.setText(temp + "");
  228. }catch(RuntimeException a){
  229. ans.setText("错误");
  230. }
  231. }
  232. });
  233. bequal.setOnClickListener(new View.OnClickListener() {
  234. @Override
  235. public void onClick(View view) {
  236. try {
  237. var2 = Double.parseDouble(ans.getText() + "");
  238. if (add == true) {
  239. ans.setText(var1 + var2 + "");
  240. add = false;
  241. sq = true;
  242. }
  243. if (sub == true) {
  244. ans.setText(var1 - var2 + "");
  245. sub = false;
  246. sq = true;
  247. }
  248. if (mul == true) {
  249. ans.setText(var1 * var2 + "");
  250. mul = false;
  251. sq = true;
  252. }
  253. if (div == true) {
  254. ans.setText(var1 / var2 + "");
  255. div = false;
  256. sq = true;
  257. }
  258. if (n10 == true) {
  259. ans.setText(0 + "");
  260. n10 = false;
  261. sq = true;
  262. }
  263. }catch(RuntimeException a){
  264. }
  265. /*String temp="";
  266. temp=ans.getText().toString().substring(0,ans.length()-1);
  267. ans.setText(temp+"");*/
  268. }
  269. });
  270. // public void opratorCalc(String operatorNumber,String currentOprator)
  271. // {
  272. // if(TextUtils.isEmpty(lastOperators))
  273. // {
  274. // firstNumber = Double.parseDouble(operatorNumber);
  275. // return;
  276. // }
  277. }
  278. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/311353
推荐阅读
相关标签
  

闽ICP备14008679号