简单实现Android计算器功能
程序员文章站
2024-02-18 18:34:16
自己写的安卓的计算器:
注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一...
自己写的安卓的计算器:
注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了。
安卓计算器android <wbr>calculator
工程下载链接:https://github.com/jiangxh1992/android-calculator
代码:
package com.example.calculator; import android.os.bundle; import android.app.activity; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.textview; public class mainactivity extends activity implements onclicklistener{ //按钮 button btn_1,btn_2,btn_3, btn_4,btn_5,btn_6, btn_7,btn_8,btn_9, btn_10,btn_11,btn_12, btn_13,btn_14,btn_15, btn_16,btn_17,btn_18, btn_19,btn_20,btn_21,btn_22; //用于判断是否需要重新输入 boolean restart; //屏幕上数字的正负状态 int front; //操作数与操作符 float operator1,operator2; int symbol;//jre1.6不支持switch(字符串) //"+、—、*、/、x^y、/x、sinx、cosx"-->1、2、3、4、5、6、7、8 @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); //初始化操作数(默认为0)操作符(默认为+) operator1=0; operator2=0; restart=true; front=0;//默认为正数 textview txt=(textview) findviewbyid(r.id.textview1); txt.settext("00"); //获取button对象 btn_1= (button)findviewbyid(r.id.button1); btn_2= (button)findviewbyid(r.id.button2); btn_3= (button)findviewbyid(r.id.button3); btn_4= (button)findviewbyid(r.id.button4); btn_5= (button)findviewbyid(r.id.button5); btn_6= (button)findviewbyid(r.id.button6); btn_7= (button)findviewbyid(r.id.button7); btn_8= (button)findviewbyid(r.id.button8); btn_9= (button)findviewbyid(r.id.button9); btn_10= (button)findviewbyid(r.id.button10); btn_11= (button)findviewbyid(r.id.button11); btn_12= (button)findviewbyid(r.id.button12); btn_13= (button)findviewbyid(r.id.button13); btn_14= (button)findviewbyid(r.id.button14); btn_15= (button)findviewbyid(r.id.button15); btn_16= (button)findviewbyid(r.id.button16); btn_17= (button)findviewbyid(r.id.button17); btn_18= (button)findviewbyid(r.id.button18); btn_19= (button)findviewbyid(r.id.button19); btn_20= (button)findviewbyid(r.id.button20); btn_21= (button)findviewbyid(r.id.button21); btn_22= (button)findviewbyid(r.id.button22); //注册点击事件 btn_1.setonclicklistener(this); btn_2.setonclicklistener(this); btn_3.setonclicklistener(this); btn_4.setonclicklistener(this); btn_5.setonclicklistener(this); btn_6.setonclicklistener(this); btn_7.setonclicklistener(this); btn_8.setonclicklistener(this); btn_9.setonclicklistener(this); btn_10.setonclicklistener(this); btn_11.setonclicklistener(this); btn_12.setonclicklistener(this); btn_13.setonclicklistener(this); btn_14.setonclicklistener(this); btn_15.setonclicklistener(this); btn_16.setonclicklistener(this); btn_17.setonclicklistener(this); btn_18.setonclicklistener(this); btn_19.setonclicklistener(this); btn_20.setonclicklistener(this); btn_21.setonclicklistener(this); btn_22.setonclicklistener(this); } @override //点击事件处理 public void onclick(view btn) { //获取文本框 textview txt=(textview) findviewbyid(r.id.textview1); //文本框内容 string text=(string) txt.gettext(); float value=float.parsefloat(text); system.out.println(value); switch(btn.getid()){ //数字 case r.id.button1: if(restart){ txt.settext("1"); restart=false;} else txt.settext(text+"1"); break; case r.id.button2: if(restart){ txt.settext("2"); restart=false;} else txt.settext(text+"2"); break; case r.id.button3: if(restart){ txt.settext("3"); restart=false;} else txt.settext(text+"3"); break; case r.id.button4: if(restart){ txt.settext("4"); restart=false;} else txt.settext(text+"4"); break; case r.id.button5: if(restart){ txt.settext("5"); restart=false;} else txt.settext(text+"5"); break; case r.id.button6: if(restart){ txt.settext("6"); restart=false;} else txt.settext(text+"6"); break; case r.id.button7: if(restart){ txt.settext("7"); restart=false;} else txt.settext(text+"7"); break; case r.id.button8: if(restart){ txt.settext("8"); restart=false;} else txt.settext(text+"8"); break; case r.id.button9: if(restart){ txt.settext("9"); restart=false;} else txt.settext(text+"9"); break; case r.id.button10: if(restart) txt.settext("00"); else txt.settext(text+"0"); break; //+ case r.id.button11: symbol=1; operator1=value; restart=true; break; //- case r.id.button12: symbol=2; operator1=value; restart=true; break; //-/+ case r.id.button13: if(restart){ txt.settext("-"); front=1;} else if(front==0){ txt.settext("-"+text); front=1;} else if(front==1){ txt.settext(text.substring(1)); front=0; } break; //* case r.id.button14: symbol=3; operator1=value; restart=true; break; // / case r.id.button15: symbol=4; operator1=value; restart=true; break; //c case r.id.button16: txt.settext("00"); restart=true; break; // . case r.id.button17: if(restart) txt.settext("."); else txt.settext(text+"."); restart=false; break; //= case r.id.button18: restart=true; switch(symbol){ case 1: txt.settext(string.valueof(operator1+value)); break; case 2: txt.settext(string.valueof(operator1-value)); break; case 3: txt.settext(string.valueof(operator1*value)); break; case 4: txt.settext(string.valueof(operator1/value)); break; case 5: txt.settext(string.valueof(math.pow(operator1, value))); break; } break; //x^y case r.id.button19: symbol=5; operator1=value; restart=true; break; // /x case r.id.button20: symbol=6; txt.settext(string.valueof(math.sqrt(value))); restart=true; break; // sinx case r.id.button21: symbol=7; txt.settext(string.valueof(math.sin(value))); restart=true; break; // cosx case r.id.button22: symbol=8; txt.settext(string.valueof(math.cos(value))); restart=true; break; default: break; } } }
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。