【简单实现android计算器代码】简单实现Android计算器功能

更新时间:2021-06-09    来源:安卓教程    手机版     字体:

【www.bbyears.com--安卓教程】

自己写的安卓的计算器:
注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了。
 安卓计算器Androidcalculator

工程下载链接:https://github.com/jiangxh1992/Android-Calculator

代码:

 

 代码如下

packagecom.example.calculator;

  

importandroid.os.Bundle;

importandroid.app.Activity;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.TextView;

  

publicclassMainActivityextendsActivityimplementsOnClickListener{

 //按钮

 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;

 //用于判断是否需要重新输入

 booleanrestart;

 //屏幕上数字的正负状态

 intfront;

 //操作数与操作符

 floatoperator1,operator2;

 intsymbol;//jre1.6不支持switch(字符串)

 //"+、―、*、/、x^y、/x、sinx、cosx"-->1、2、3、4、5、6、7、8

 @Override

 protectedvoidonCreate(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

 //点击事件处理

 publicvoidonClick(View btn) {

  //获取文本框

  TextView txt=(TextView) findViewById(R.id.textView1);

  //文本框内容

  String text=(String) txt.getText();

  floatvalue=Float.parseFloat(text);

  System.out.println(value);

  switch(btn.getId()){

  //数字

  caseR.id.button1:

   if(restart){

    txt.setText("1");

    restart=false;}

   else

   txt.setText(text+"1");

   break;

  caseR.id.button2:

   if(restart){

    txt.setText("2");

    restart=false;}

   else

   txt.setText(text+"2");

   break;

  caseR.id.button3:

   if(restart){

    txt.setText("3");

    restart=false;}

   else

   txt.setText(text+"3");

   break;

  caseR.id.button4:

   if(restart){

    txt.setText("4");

    restart=false;}

   else

   txt.setText(text+"4");

   break;

  caseR.id.button5:

   if(restart){

    txt.setText("5");

    restart=false;}

   else

   txt.setText(text+"5");

   break;

  caseR.id.button6:

   if(restart){

    txt.setText("6");

    restart=false;}

   else

   txt.setText(text+"6");

   break;

  caseR.id.button7:

   if(restart){

    txt.setText("7");

    restart=false;}

   else

   txt.setText(text+"7");

   break;

  caseR.id.button8:

   if(restart){

    txt.setText("8");

    restart=false;}

   else

   txt.setText(text+"8");

   break;

  caseR.id.button9:

   if(restart){

    txt.setText("9");

    restart=false;}

   else

   txt.setText(text+"9");

   break;

  caseR.id.button10:

   if(restart)

    txt.setText("00");

   else

   txt.setText(text+"0");

   break;

   //+

  caseR.id.button11:

   symbol=1;

   operator1=value;

   restart=true;

   break;

   //-

  caseR.id.button12:

   symbol=2;

   operator1=value;

   restart=true;

   break;

   //-/+

  caseR.id.button13:

   if(restart){

    txt.setText("-");

    front=1;}

   elseif(front==0){

    txt.setText("-"+text);

    front=1;}

   elseif(front==1){

    txt.setText(text.substring(1));

    front=0;

   }

   break;

   //*

  caseR.id.button14:

   symbol=3;

   operator1=value;

   restart=true;

   break;

   // /

  caseR.id.button15:

   symbol=4;

   operator1=value;

   restart=true;

   break;

   //C

  caseR.id.button16:

   txt.setText("00");

   restart=true;

   break;

   // .

  caseR.id.button17:

   if(restart)

    txt.setText(".");

   else

   txt.setText(text+".");

   restart=false;

   break;

   //=

  caseR.id.button18:

   restart=true;

   switch(symbol){

   case1:

    txt.setText(String.valueOf(operator1+value));

    break;

   case2:

    txt.setText(String.valueOf(operator1-value));

    break;

   case3:

    txt.setText(String.valueOf(operator1*value));

    break;

   case4:

    txt.setText(String.valueOf(operator1/value));

    break;

   case5:

    txt.setText(String.valueOf(Math.pow(operator1, value)));

    break;

   }

   break;

   //x^y

  caseR.id.button19:

   symbol=5;

   operator1=value;

   restart=true;

   break;

   // /x

  caseR.id.button20:

   symbol=6;

   txt.setText(String.valueOf(Math.sqrt(value)));

   restart=true;

   break;

   // sinx

  caseR.id.button21:

   symbol=7;

   txt.setText(String.valueOf(Math.sin(value)));

   restart=true;

   break;

   // cosx

  caseR.id.button22:

   symbol=8;

   txt.setText(String.valueOf(Math.cos(value)));

   restart=true;

   break;

     

   default:

    break;

  }

 }

  

}

 

效果图:

本文来源:http://www.bbyears.com/shoujikaifa/122657.html

热门标签

更多>>

本类排行