android实现计算器功能吗,简单实现Android计算器功能
自己写的安卓的计算器:
注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了。
安卓计算器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校园订餐APP,简单实现登录注册功能(SharedPreferences)
基于android校园订餐APP,简单实现登录注册功能(SharedPreferences) 欢迎浏览本篇文章 界面效果图 页面设计代码 源代码 欢迎浏览本篇文章 大家好! 这是小编首次在博客上写的文 ...
- android原生定时任务_一个简单的Android定时任务
Android中(Service )服务的最佳实践--后台执行的定时任务 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/u010046908/arti ...
- android studio开发整合资源简单实现android扫一扫功能
开发安卓app过程中需要集成扫码功能,搜索的时候发现了 http://blog.csdn.net/yuzhiqiang_1993/article/details/52805057 这篇博客文章,写的很 ...
- android 实现屏幕录制功能,极速简单实现Android 屏幕录制编码为H264并且使用RTMP推流...
最近有使用到屏幕录制功能并需要将屏幕数据推送到服务器端.采用RTMP推送,MediaCodec编码,MediaProjection 获取屏幕数据. 1.录制屏幕 在Android5.0 后可以采用原生 ...
- android 全局注入,一种简单的Android全局注入方案
Xposed和Cydia Substrate是android上两款比较知名的全局Hook框架,但都不尽善尽美,有时为了实现某个功能往往要绕许多弯路去配合框架,结果也差强人意,与其浪费精力去熟悉框架不如 ...
- android 代码中使用dp,简单谈谈Android中SP与DP的区别
从一开始写Android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...
- android 结束if循环_简单探究Android平台下' if ' 语句条件判断耗时情况
2017年6月13日 前言 前几日在改Bug时看到好多调试时用的日志语句都被一个日志开关控制着它的执行权.形如: 1 if(Constants.LOG_TAG){2 Log.d(TAG, " ...
- Android音乐播放器eclipse,简单的Android音乐播放器 eclipse开发的基于Android平台的音乐播放器 - 下载 - 搜珍网...
压缩包 : 音乐播放器.zip 列表 音乐播放器/ 音乐播放器/.classpath 音乐播放器/.project 音乐播放器/.settings/ 音乐播放器/.settings/org.eclip ...
- java实现分页打印功能_Java简单高效实现分页功能
今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的crud接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不多说上方法 1.utils.java工具类中的方法 /** ...
最新文章
- redis4-发布与订阅
- SOA也是一种设计模式
- EXCEL打开CSV文件乱码的解决方法
- 数据结构源码笔记(C语言):Huffman树字符编码
- Domain Driven Design and Development In Practice--转载
- 为什么晚结婚的离婚率低?与这个对于我们的启示。
- BW report execution callstack
- Android—内存泄漏、GC及LeakCanary源码解析
- VisualBox安装Ubuntu18.04后续操作:换源、IP、LAMP、phpmyadmin
- 学习Python的第七天
- 明尼苏达计算机科学与工程,2019上海软科世界一流学科排名计算机科学与工程专业排名明尼苏达大学双城分校排名第101-150...
- Android 隐藏程序的图标
- amd超频软件LINUX,cpu超频软件amd
- 如何搭建经营分析看板
- 面试逻辑题(English)
- MySql中 where IN 中多个参数查询
- JAVA多态的理解及应用
- SQL 修改表的常用命令
- 电脑桌面无图标,任务栏也不见了
- 目标跟踪方法--基于区域跟踪
热门文章
- python pandas 豆瓣电影 top250 数据分析
- 【JavaScript】JS取余及取商(一)
- C++ map用法总结和vector用法总结
- Android cec设备,一种通过关于android的cec/arc开关与arc功放设备交互的方法与流程...
- 高频面试真题答案 -java后端 -java基础篇
- 植树造林,让地球降温还是升温?
- 计算机技术 食堂管理,一套出色的智慧食堂消费系统,应该具备哪些突出特点?...
- 百度网盘安装权限限制
- android颜色透明代码
- [Code Festival 2017 qual A-F] Squeezing Slimes