当前位置: 首页 > 编程笔记 >

简单实现Android计算器功能

易超
2023-03-14
本文向大家介绍简单实现Android计算器功能,包括了简单实现Android计算器功能的使用技巧和注意事项,需要的朋友参考一下

自己写的安卓的计算器:
注:这个是在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计算器简单实现代码,包括了android计算器简单实现代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了android计算器的具体实现代码,供大家参考,具体内容如下 java代码: xml: 关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现! 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍基于javascript实现简单计算器功能,包括了基于javascript实现简单计算器功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家介绍javascript实现简单计算器功能的详细代码,分享给大家供大家参考,具体内容如下 效果图: 实现代码: 希望本文所述对大家学习javascript程序设计有所帮助。

  • 本文向大家介绍js实现简单计算器,包括了js实现简单计算器的使用技巧和注意事项,需要的朋友参考一下 参考部分资料,编写一个简单的计算器案例,虽然完成了正常需求,但是也有不满之处,待后续实力提升后再来补充,先把不足之处列出:   1:本来打算只要打开页面,计算器的输入框会显示一个默认为0的状态,但是在输入框加入默认显示为0的时候,选择数据输入时,该0会显示输入数字的前面,例如”0123“,由于能力有

  • 本文向大家介绍JavaScript实现简单计算器,包括了JavaScript实现简单计算器的使用技巧和注意事项,需要的朋友参考一下 适合初学者参考的简易计算器,里面没有太多的难以理解的方法,使用的是最基础的JS语法解决式子的运算问题,同时处理了式子中的运算优先级。 实现思路 1、通过绑定点击事件实现待计算式子的输入 2、遍历原式子,读取式子中乘除运算符的位置 3、优先处理乘除取余运算 4、处理加减

  • Python3 实例 以下代码用于实现简单计算器实现,包括两个数基本的加减乘除运输: 实例(Python 3.0+)# Filename : test.py # author by : www.runoob.com # 定义函数 def add(x, y): """相加""" return x + y def subtract(x, y): """相减""" return x - y def mu

  • 本文向大家介绍vue实现简易计算器功能,包括了vue实现简易计算器功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue实现简易计算器的具体代码,供大家参考,具体内容如下 功能介绍 1、可以实现加减乘除 2、可以实现归零 3、实现退格 效果图一般般,样式随便写的,主要看功能以及实现方法 代码加解释 1、HTML部分 首先布局,把要做的样子写出来,为每一个按键绑定一个点击事件 2、