Android 简易计算器实现
2017-10-11 18:49
337 查看
自学Android中,做出简易的计算器与大家分享。
实现的功能:
1.简易运算+,-,*,/,但没有优先级运算,就是只能一步一步运算(以后再优化)
2.翻阅图片,增加趣味效果
3.回退功能,就是返回一步
4.消除,清空数据,再次准备开始运算
5.啊,那个小数点目前还没用,不过倒也挺容易添加功能的
提几点:1.格式转换,显示是不是字符串需要仔细检查,不是的话转换格式,例如:
3.组件命名要容易对应,我觉得我有部分写的复杂了(希望大家多留言指教指教我这小白)
4.学好Java,对于Android就容易上手
好了,欢迎大家下载转载,相互交流,共同进步
我使用的环境是Android studio,至于如何将我的代码弄到大家的环境中,请自己探索,另外我的计算器中有着图片文件所以下载代码会需要在相应位置添加图片,或注释我的图片代码
运行图片:
源代码:
实现的功能:
1.简易运算+,-,*,/,但没有优先级运算,就是只能一步一步运算(以后再优化)
2.翻阅图片,增加趣味效果
3.回退功能,就是返回一步
4.消除,清空数据,再次准备开始运算
5.啊,那个小数点目前还没用,不过倒也挺容易添加功能的
提几点:1.格式转换,显示是不是字符串需要仔细检查,不是的话转换格式,例如:
String rem=String.valueOf(ans[jans]); show.setText(rem);2.越界,图片浏览到底会越界,可以添加求余运算,使其返回第一张图
3.组件命名要容易对应,我觉得我有部分写的复杂了(希望大家多留言指教指教我这小白)
4.学好Java,对于Android就容易上手
好了,欢迎大家下载转载,相互交流,共同进步
我使用的环境是Android studio,至于如何将我的代码弄到大家的环境中,请自己探索,另外我的计算器中有着图片文件所以下载代码会需要在相应位置添加图片,或注释我的图片代码
运行图片:
源代码:
package com.example.hp.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends AppCompatActivity { Button but1,but2,but3,but4,but5,but6,but7,but8,but9,but0; Button butcheng,butchu,butdeng,butdian,butjia,butjian,butclear,butback; TextView show; ImageView pics; int[] ans=new int[100]; char[] run=new char[100]; int jans=0,jrun=0; int jpic=0; int[] pictures=new int[]{//五张图片 R.drawable.monster5_1, R.drawable.monster4_1, R.drawable.monster3_3, R.drawable.monster2_1, R.drawable.monster1, }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for(int i=0;i<ans.length;i++) { ans[i]=0; run[i]=' '; } butback=(Button)findViewById(R.id.buttongoback); but0=(Button)findViewById(R.id.button0); but1=(Button)findViewById(R.id.button1); but2=(Button)findViewById(R.id.button2); but3=(Button)findViewById(R.id.button3); but4=(Button)findViewById(R.id.button4); but5=(Button)findViewById(R.id.button5); but6=(Button)findViewById(R.id.button6); but7=(Button)findViewById(R.id.button7); but8=(Button)findViewById(R.id.button8); but9=(Button)findViewById(R.id.button9); butjia=(Button)findViewById(R.id.buttonjia); butjian=(Button)findViewById(R.id.buttonjian); butcheng=(Button)findViewById(R.id.buttoncheng); butchu=(Button)findViewById(R.id.buttonchu); butdian=(Button)findViewById(R.id.buttondian); butdeng=(Button)findViewById(R.id.buttondeng); butclear=(Button)findViewById(R.id.buttonclear); show=(TextView)findViewById(R.id.show); pics=(ImageView)findViewById(R.id.showpic); pics.setImageResource(pictures[jpic]); butback.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String ok=show.getText().toString(); if(ok=="+"||ok=="-"||ok=="*"||ok=="/") { run[jrun]=' '; jrun-=1;jans-=1; show.setText(""); } else { if(ans[jans]==0); else { ans[jans]/=10; String rem=String.valueOf(ans[jans]); show.setText(rem); } } } }); butclear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { for(int i=0;i<ans.length;i++) ccf0 { ans[i]=0; run[i]=' '; } jans=0;jrun=0; show.setText("已经清空,请重新输入"); } }); but1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+1; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+2; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+3; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+4; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+5; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+6; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+7; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+8; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10+9; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); but0.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ans[jans]=ans[jans]*10; String rem=String.valueOf(ans[jans]); show.setText(rem); } }); butjia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show.setText("+"); run[jrun]='+'; jans++;jrun++; } }); butjian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show.setText("-"); run[jrun]='-'; jans++;jrun++; } }); butcheng.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show.setText("*"); run[jrun]='*'; jans++;jrun++; } }); butchu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show.setText("/"); run[jrun]='/'; jans++;jrun++; } }); butdeng.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int answer=ans[0]; for(int i=0;i<jrun;i++) { if(run[i]=='+') { answer+=ans[i+1]; } else if(run[i]=='-') { answer-=ans[i+1]; } else if(run[i]=='*') { answer*=ans[i+1]; } else if(run[i]=='/') { answer/=ans[i+1]; } } String end=String.valueOf(answer); show.setText("="+end); pics.setImageResource(pictures[++jpic%pictures.length]);//翻阅图片 } }); } }界面设计代码:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.hp.myapplication.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:id="@+id/button1" android:textSize="30dp" android:layout_above="@+id/button4" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2" android:id="@+id/button2" android:textSize="30dp" android:layout_above="@+id/button5" android:layout_toRightOf="@+id/button1" android:layout_toEndOf="@+id/button1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3" android:id="@+id/button3" android:textSize="30dp" android:layout_alignTop="@+id/button2" android:layout_toRightOf="@+id/button2" android:layout_toEndOf="@+id/button2" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="4" android:id="@+id/button4" android:textSize="30dp" android:layout_alignTop="@+id/button6" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="5" android:id="@+id/button5" android:textSize="30dp" android:layout_alignTop="@+id/button4" android:layout_toRightOf="@+id/button4" android:layout_toEndOf="@+id/button4" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="6" android:id="@+id/button6" android:textSize="30dp" android:layout_above="@+id/button9" android:layout_toRightOf="@+id/button5" android:layout_toEndOf="@+id/button5" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="7" android:id="@+id/button7" android:textSize="30dp" android:layout_alignTop="@+id/button8" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="8" android:id="@+id/button8" android:textSize="30dp" android:layout_above="@+id/button0" android:layout_alignLeft="@+id/button0" android:layout_alignStart="@+id/button0" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="9" android:id="@+id/button9" android:textSize="30dp" android:layout_alignTop="@+id/button8" android:layout_toRightOf="@+id/button8" android:layout_toEndOf="@+id/button8" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" android:id="@+id/button0" android:textSize="30dp" android:layout_alignParentBottom="true" android:layout_toRightOf="@+id/button7" android:layout_toEndOf="@+id/button7" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/show" android:text="Please input" android:textSize="35dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+" android:id="@+id/buttonjia" android:textSize="30dp" android:layout_alignTop="@+id/button3" android:layout_toRightOf="@+id/button3" android:layout_toEndOf="@+id/button3" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:id="@+id/buttonjian" android:textSize="30dp" android:layout_above="@+id/button9" android:layout_toRightOf="@+id/button6" android:layout_toEndOf="@+id/button6" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="*" android:id="@+id/buttoncheng" android:textSize="30dp" android:layout_alignTop="@+id/button9" android:layout_toRightOf="@+id/button9" android:layout_toEndOf="@+id/button9" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="/" android:id="@+id/buttonchu" android:textSize="30dp" android:layout_alignParentBottom="true" android:layout_toRightOf="@+id/buttondeng" android:layout_toEndOf="@+id/buttondeng" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="=" android:id="@+id/buttondeng" android:layout_alignParentBottom="true" android:layout_toRightOf="@+id/button0" android:layout_toEndOf="@+id/button0" android:textSize="30dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:id="@+id/buttondian" android:layout_alignBottom="@+id/button0" android:layout_toLeftOf="@+id/button0" android:layout_toStartOf="@+id/button0" android:textSize="30dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="clear" android:id="@+id/buttonclear" android:textSize="30dp" android:layout_above="@+id/button3" android:layout_alignRight="@+id/buttonjia" android:layout_alignEnd="@+id/buttonjia" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="get back" android:id="@+id/buttongoback" android:textSize="30dp" android:layout_alignBaseline="@+id/buttonclear" android:layout_alignBottom="@+id/buttonclear" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/showpic" android:src="@drawable/monster3_3" android:layout_above="@+id/buttonclear" android:layout_centerHorizontal="true" /> </RelativeLayout>
相关文章推荐
- 喝酒不骑马的Android自学日记(4)-简易计算器的实现
- Java实现表达式的运算-Android简易计算器
- Android小程序-简易计算器的实现
- android实现简易计算器
- Android开发——实现Android简易计算器
- 第一个Android项目--简易计算器的设计与实现
- [Android]使用Stack实现简易计算器
- 基于Android的一个简易计算器的实现
- 【android】用EditText控件和Button控件实现一个简易计算器
- JAVASCRIPT、ANDROID、C#分别实现普通日期转换多少小时前、多少分钟前、多少秒
- Antlr实现的简易计算器(C#版)
- Android教程之实现动作感应技术
- Android教程之实现动作感应技术
- Android 实例-个人理财工具 之一 启动界面实现
- Android ListView用法(1),不用ListActivity实现
- 主题:利用Bundle实现Android Activity间消息的传递
- 用js实现简易计算器(只能实现加减乘除)
- [转载]利用Bundle实现Android Activity间消息的传递
- 基于rtsp的手机视频点播实现和研究(扩展支持android, ios平台)
- android简单demo学习系例之菜单实现