欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

简单实现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; 
  } 
 } 
 
} 

效果图:

简单实现Android计算器功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。