您的位置:首页 > 移动开发 > Android开发

Android 简易计算器实现

2017-10-11 18:49 337 查看
自学Android中,做出简易的计算器与大家分享。

实现的功能:

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: