电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

android studio實現簡單的計算器(無bug)

瀏覽:96日期:2022-09-22 17:17:26

本文實例為大家分享了android studio實現簡單計算器的具體代碼,供大家參考,具體內容如下

1.效果圖

android studio實現簡單的計算器(無bug)

2布局代碼

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical' android:background='@drawable/jsj1'> <TextView android:layout_width='match_parent' android:layout_height='wrap_content' android:text='計算器' android:textSize='20dp' android:gravity='center' android:textColor='#EE4000'/> <TextView android:layout_width='match_parent' android:layout_height='wrap_content' android:text='輸入數字'/> <EditText android: android:layout_width='match_parent' android:layout_height='wrap_content'/> <TextView android:layout_width='match_parent' android:layout_height='wrap_content' android:text='運算結果'/> <EditText android: android:layout_width='match_parent' android:layout_height='wrap_content'/> <LinearLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='horizontal'> <Button android:layout_marginLeft='5dp' android: android:layout_width='88dp' android:layout_height='100dp' android:text='C' android:textSize='20dp' android:padding='5dp' android:background='@drawable/qqqqqqqqqq'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='÷' android:textSize='20dp' android:padding='5dp' android:background='@drawable/qqqqqqqqqq'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='×' android:textSize='20dp' android:padding='5dp' android:background='@drawable/qqqqqqqqqq'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='Cx' android:textSize='20dp' android:padding='5dp' android:background='@drawable/qqqqqqqqqq'/> </LinearLayout> <LinearLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='horizontal'> <Button android:layout_marginLeft='5dp' android: android:layout_width='88dp' android:layout_height='100dp' android:text='7' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='8' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='9' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='-' android:textSize='20dp' android:padding='5dp' android:background='@drawable/qqqqqqqqqq'/> </LinearLayout> <LinearLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='horizontal'> <Button android:layout_marginLeft='5dp' android: android:layout_width='88dp' android:layout_height='100dp' android:text='4' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='5' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='6' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='+' android:textSize='20dp' android:padding='5dp' android:background='@drawable/qqqqqqqqqq'/> </LinearLayout> <LinearLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='horizontal'> <Button android:layout_marginLeft='5dp' android: android:layout_width='88dp' android:layout_height='100dp' android:text='1' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='2' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='3' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='88dp' android:layout_height='100dp' android:text='.' android:textSize='20dp' android:padding='5dp' android:background='@drawable/qqqqqqqqqq'/> </LinearLayout> <LinearLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='horizontal'> <Button android:layout_marginLeft='5dp' android: android:layout_width='88dp' android:layout_height='100dp' android:text='0' android:textSize='20dp' android:padding='5dp' android:background='@drawable/sssssssssssssss'/> <Button android: android:layout_width='265dp' android:layout_height='100dp' android:text='=' android:textSize='20dp' android:padding='5dp' android:background='#6495ED'/> </LinearLayout></LinearLayout>

3.邏輯代碼

package com.example.myzhuoye;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;public class JiSuanJi extends AppCompatActivity implements View.OnClickListener { //結果 private EditText ET001,ET002; //數字0-9 private Button btn0018, btn0013,btn0014,btn0015,btn009,btn0010,btn0011,btn005,btn006,btn007; //運算符,+,-,×,÷,.,=;清除,返回 private Button btn0012,btn008,btn003,btn002,btn0019,btn0016,btn001,btn004; private String text = '';//保存輸入的數字和符號 private Double result = 0.0;//輸出結果 @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout4); //結果 ET001=(EditText)findViewById(R.id.ET001); ET002=(EditText)findViewById(R.id.ET002); //數字0-9 btn0013=(Button)findViewById(R.id.btn0013); btn0014=(Button)findViewById(R.id.btn0014); btn0015=(Button)findViewById(R.id.btn0015); btn009=(Button)findViewById(R.id.btn009); btn0010=(Button)findViewById(R.id.btn0010); btn0011=(Button)findViewById(R.id.btn0011); btn005=(Button)findViewById(R.id.btn005); btn006=(Button)findViewById(R.id.btn006); btn007=(Button)findViewById(R.id.btn007); btn0018=(Button)findViewById(R.id.btn0018); //運算符 btn004=(Button)findViewById(R.id.btn004); btn0012=(Button)findViewById(R.id.btn0012); btn008=(Button)findViewById(R.id.btn008); btn003=(Button)findViewById(R.id.btn003); btn002=(Button)findViewById(R.id.btn002); btn0019=(Button)findViewById(R.id.btn0019); btn0016=(Button)findViewById(R.id.btn0016); btn001=(Button)findViewById(R.id.btn001); //添加點擊事件 btn0013.setOnClickListener((View.OnClickListener) this); btn0014.setOnClickListener((View.OnClickListener) this); btn0015.setOnClickListener((View.OnClickListener) this); btn009.setOnClickListener((View.OnClickListener) this); btn0010.setOnClickListener((View.OnClickListener) this); btn0011.setOnClickListener((View.OnClickListener) this); btn005.setOnClickListener((View.OnClickListener) this); btn006.setOnClickListener((View.OnClickListener) this); btn007.setOnClickListener((View.OnClickListener) this); btn0018.setOnClickListener((View.OnClickListener) this); btn0012.setOnClickListener((View.OnClickListener) this); btn008.setOnClickListener((View.OnClickListener) this); btn003.setOnClickListener((View.OnClickListener) this); btn002.setOnClickListener((View.OnClickListener) this); btn0019.setOnClickListener((View.OnClickListener) this); btn0016.setOnClickListener((View.OnClickListener) this); btn001.setOnClickListener((View.OnClickListener) this); btn004.setOnClickListener((View.OnClickListener) this); } @Override public void onClick(View v) { String string=ET001.getText().toString(); switch (v.getId()){ case R.id.btn0018://0 num(0); break; case R.id.btn0013://1 num(1); break; case R.id.btn0014://2 num(2); break; case R.id.btn0015://3 num(3); break; case R.id.btn009://4 num(4); break; case R.id.btn0010://5 num(5); break; case R.id.btn0011://6 num(6); break; case R.id.btn005://7 num(7); break; case R.id.btn006://8 num(8); break; case R.id.btn007://9 num(9); break; case R.id.btn0019://. dot(); break; case R.id.btn0012://+ add(); break; case R.id.btn008://- sub(); break; case R.id.btn003://'*' multiply(); break; case R.id.btn002://除 divide(); break; case R.id.btn001://清除 clear(); break; case R.id.btn004://返回 back(); break; //計算結果 case R.id.btn0016://結果 result(); break; default: break; } ET001.setText(text); ET002.setText(String.valueOf(result)); } private void num(int i) { text = text + String.valueOf(i); } private void dot() { int a=text.length(); String s01='+'; String s02='-'; String s03='×'; String s04='÷'; String s05='.'; if (a!=0) { String s=text.substring(a-1,a); String s0=text.substring(0,a-1); if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) { text = s0+'.'; }else { text += '.'; } } else { text = ''; result =0.0; ET001.setText(''); ET002.setText(''); } } private void clear() { text = ''; result =0.0; ET001.setText(''); ET002.setText(''); } private void back() { if (text.length()!=0){ String str = text.substring(0, text.length()-1); text = str; } ; } private void add() { int a=text.length(); String s01='+'; String s02='-'; String s03='×'; String s04='÷'; String s05='.'; if (a!=0) { String s=text.substring(a-1,a); String s0=text.substring(0,a-1); if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) { text = s0+'+'; }else { text += '+'; } } else { text = ''; result =0.0; ET001.setText(''); ET002.setText(''); } } private void sub() { int a=text.length(); String s01='+'; String s02='-'; String s03='×'; String s04='÷'; String s05='.'; if (a!=0) { String s=text.substring(a-1,a); String s0=text.substring(0,a-1); if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) { text = s0+'-'; }else { text += '-'; } } else { text = ''; result =0.0; ET001.setText(''); ET002.setText(''); } } private void multiply() { int a=text.length(); String s01='+'; String s02='-'; String s03='×'; String s04='÷'; String s05='.'; if (a!=0) { String s=text.substring(a-1,a); String s0=text.substring(0,a-1); if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) { text = s0+'×'; }else { text += '×'; } } else { text = ''; result =0.0; ET001.setText(''); ET002.setText(''); } } private void divide() { int a=text.length(); String s01='+'; String s02='-'; String s03='×'; String s04='÷'; String s05='.'; if (a!=0) { String s=text.substring(a-1,a); String s0=text.substring(0,a-1); if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) { text = s0+'÷'; }else { text += '÷'; } } else { text = ''; result =0.0; ET001.setText(''); ET002.setText(''); } } //計算輸出結果 private void result() { result = testOperation(text); } public Double testOperation(String s){ //分割字符然后放進數組 String s1 =s.replace('+','-'); String[] str = s1.split('-'); double total1=0; //先遍歷數組,把里面的乘除結果算出來 for(String str1:str){ if(str1.contains('×')||str1.contains('÷')){ double total = 0; for(int i =0;i<str1.length();){ int count =1; a:for(int j =i+1;j<str1.length();j++){ char c =str1.charAt(j); if(c==’×’||c==’÷’){ break a; }else{ count++; } } //將數字截取出來 String s2 =str1.substring(i,i+count); double d = Double.parseDouble(s2); if(i==0){ total = d; }else{ char c1 = str1.charAt(i-1); if(c1==’×’){ total*=d; }else if(c1==’÷’){ //如果除數為0,直接返回null; if(d == 0) return null; total/=d; } } i+=count+1; } s= s.replace(str1, total+''); } } //進行加減運算 for(int i =0;i<s.length();i++){ int count =1; a:for(int j=i+1;j<s.length();j++){ char c = s.charAt(j); if(c==’+’||c==’-’){ break a; }else{ count++; } } String s3= s.substring(i,i+count); double d2 = Double.parseDouble(s3); if(i==0){ total1 = d2; }else{ char c = s.charAt(i-1); if(c==’+’){ total1+=d2; }else if(c==’-’){ total1-=d2; } } i+=count; } return total1; }}

4.XML文件

<?xml version='1.0' encoding='utf-8'?><shape xmlns:android='http://schemas.android.com/apk/res/android'> <gradient android:startColor='#c0000000' android:endColor='#c0000000' android:angle='90' /><!--背景顏色漸變 angle為漸變角度--> <solid android:color=' #8DEEEE' /><!-- 背景填充顏色 --> <stroke android: android:color='#ff000000' /><!-- 描邊,邊框寬度、顏色 --> <corners android:radius='0dp' /><!-- 邊角圓弧的半徑 --> <padding android:left='0dp' android:top='0dp' android:right='0dp' android:bottom='0dp' /><!-- 四周留出來的空白 --></shape>

<?xml version='1.0' encoding='utf-8'?><shape xmlns:android='http://schemas.android.com/apk/res/android'><gradient android:startColor='#c0000000' android:endColor='#c0000000' android:angle='90' /><!--背景顏色漸變 angle為漸變角度--><solid android:color='#00FFFF' /><!-- 背景填充顏色 --><stroke android: android:color='#ff000000' /><!-- 描邊,邊框寬度、顏色 --><corners android:radius='0dp' /><!-- 邊角圓弧的半徑 --><padding android:left='0dp' android:top='0dp' android:right='0dp' android:bottom='0dp' /><!-- 四周留出來的空白 --></shape>

關于計算器的精彩文章請查看《計算器專題》 ,更多精彩等你來發現!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 维泰克Veertek-锂电池微短路检测_锂电池腐蚀检测_锂电池漏液检测 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 钢骨架轻型板_膨石轻型板_钢骨架轻型板价格_恒道新材料 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 液压油缸-液压缸厂家价格,液压站系统-山东国立液压制造有限公司 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 书信之家_书信标准模板范文大全 最新范文网_实用的精品范文美文网 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 螺杆泵_中成泵业| 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 集菌仪_智能集菌仪_全封闭集菌仪_无菌检查集菌仪厂家-那艾 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 聚丙烯酰胺PAM-聚合氯化铝PAC-絮凝剂-河南博旭环保科技有限公司 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 北京康百特科技有限公司-分子蒸馏-短程分子蒸馏设备-实验室分子蒸馏设备 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 高压互感器,电流互感器,电压互感器-上海鄂互电气科技有限公司 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 密封无忧网 _ 专业的密封产品行业信息网 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 自动配料系统_称重配料控制系统厂家 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 |