从零开始学android实现计算器功能示例分享(计算器源码)
从零开始学android实现计算器功能示例分享(计算器源码)
发布时间:2017-01-07 来源:查字典编辑
摘要:下面是效果展示:复制代码代码如下:复制代码代码如下:packagecom.example.week2;importandroid.os.Bu...

下面是效果展示:

1

2

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content">

<TextView

android:id="@+id/tvResult"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:height="50dp"

android:text="@string/tvResult"

/>

</LinearLayout>

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content">

<Button

android:id="@+id/btnBackspace"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="150dp"

android:layout_marginLeft="10dp"

android:text="@string/btnbackspace"/>

<Button

android:id="@+id/btnCE"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="150dp"

android:text="@string/btnCE"/>

</LinearLayout>

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content">

<Button

android:id="@+id/btn7"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:width="75dp"

android:text="@string/btn7"/>

<Button

android:id="@+id/btn8"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btn8"/>

<Button

android:id="@+id/btn9"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btn9"/>

<Button

android:id="@+id/btnDiv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btnDiv"/>

</LinearLayout>

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content">

<Button

android:id="@+id/btn4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:width="75dp"

android:text="@string/btn4"/>

<Button

android:id="@+id/btn5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btn5"/>

<Button

android:id="@+id/btn6"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btn6"/>

<Button

android:id="@+id/btnMul"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btnMul"/>

</LinearLayout>

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content">

<Button

android:id="@+id/btn1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:width="75dp"

android:text="@string/btn1"/>

<Button

android:id="@+id/btn2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btn2"/>

<Button

android:id="@+id/btn3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btn3"/>

<Button

android:id="@+id/btnAdd"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btnAdd"/>

</LinearLayout>

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content">

<Button

android:id="@+id/btn0"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:width="75dp"

android:text="@string/btn0"/>

<Button

android:id="@+id/btnC"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btnC"/>

<Button

android:id="@+id/btnEqu"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btnEqu"/>

<Button

android:id="@+id/btnSub"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:width="75dp"

android:text="@string/btnSub"/>

</LinearLayout>

</LinearLayout>

复制代码 代码如下:

package com.example.week2;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

import android.app.Activity;

public class MainActivity extends Activity implements OnClickListener{

//声明一些控件

Button btn0=null;

Button btn1=null;

Button btn2=null;

Button btn3=null;

Button btn4=null;

Button btn5=null;

Button btn6=null;

Button btn7=null;

Button btn8=null;

Button btn9=null;

Button btnBackspace=null;

Button btnCE=null;

Button btnC=null;

Button btnAdd=null;

Button btnSub=null;

Button btnMul=null;

Button btnDiv=null;

Button btnEqu=null;

TextView tvResult=null;

//声明两个参数。接收tvResult前后的值

double num1=0,num2=0;

double Result=0;//计算结果

int op=0;//判断操作数,

boolean isClickEqu=false;//判断是否按了“=”按钮

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//从布局文件中获取控件,

btn0=(Button)findViewById(R.id.btn0);

btn1=(Button)findViewById(R.id.btn1);

btn2=(Button)findViewById(R.id.btn2);

btn3=(Button)findViewById(R.id.btn3);

btn4=(Button)findViewById(R.id.btn4);

btn5=(Button)findViewById(R.id.btn5);

btn6=(Button)findViewById(R.id.btn6);

btn7=(Button)findViewById(R.id.btn7);

btn8=(Button)findViewById(R.id.btn8);

btn9=(Button)findViewById(R.id.btn9);

btnBackspace=(Button)findViewById(R.id.btnBackspace);

btnCE=(Button)findViewById(R.id.btnCE);

btnC=(Button)findViewById(R.id.btnC);

btnEqu=(Button)findViewById(R.id.btnEqu);

btnAdd=(Button)findViewById(R.id.btnAdd);

btnSub=(Button)findViewById(R.id.btnSub);

btnMul=(Button)findViewById(R.id.btnMul);

btnDiv=(Button)findViewById(R.id.btnDiv);

tvResult=(TextView)findViewById(R.id.tvResult);

//添加监听

btnBackspace.setOnClickListener(this);

btnCE.setOnClickListener(this);

btn0.setOnClickListener(this);

btn1.setOnClickListener(this);

btn2.setOnClickListener(this);

btn3.setOnClickListener(this);

btn4.setOnClickListener(this);

btn5.setOnClickListener(this);

btn6.setOnClickListener(this);

btn7.setOnClickListener(this);

btn8.setOnClickListener(this);

btn9.setOnClickListener(this);

btnAdd.setOnClickListener(this);

btnSub.setOnClickListener(this);

btnMul.setOnClickListener(this);

btnDiv.setOnClickListener(this);

btnEqu.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

//btnBackspace和CE--------------------

case R.id.btnBackspace:

String myStr=tvResult.getText().toString();

try {

tvResult.setText(myStr.substring(0, myStr.length()-1));

} catch (Exception e) {

tvResult.setText("");

}

break;

case R.id.btnCE:

tvResult.setText(null);

break;

//btn0--9---------------------------

case R.id.btn0:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString=tvResult.getText().toString();

myString+="0";

tvResult.setText(myString);

break;

case R.id.btn1:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString1=tvResult.getText().toString();

myString1+="1";

tvResult.setText(myString1);

break;

case R.id.btn2:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString2=tvResult.getText().toString();

myString2+="2";

tvResult.setText(myString2);

break;

case R.id.btn3:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString3=tvResult.getText().toString();

myString3+="3";

tvResult.setText(myString3);

break;

case R.id.btn4:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString4=tvResult.getText().toString();

myString4+="4";

tvResult.setText(myString4);

break;

case R.id.btn5:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString5=tvResult.getText().toString();

myString5+="5";

tvResult.setText(myString5);

break;

case R.id.btn6:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString6=tvResult.getText().toString();

myString6+="6";

tvResult.setText(myString6);

break;

case R.id.btn7:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString7=tvResult.getText().toString();

myString7+="7";

tvResult.setText(myString7);

break;

case R.id.btn8:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString8=tvResult.getText().toString();

myString8+="8";

tvResult.setText(myString8);

break;

case R.id.btn9:

if(isClickEqu)

{

tvResult.setText(null);

isClickEqu=false;

}

String myString9=tvResult.getText().toString();

myString9+="9";

tvResult.setText(myString9);

break;

//btn+-*/=--------------------------------

case R.id.btnAdd:

String myStringAdd=tvResult.getText().toString();

if(myStringAdd.equals(null))

{

return;

}

num1=Double.valueOf(myStringAdd);

tvResult.setText(null);

op=1;

isClickEqu=false;

break;

case R.id.btnSub:

String myStringSub=tvResult.getText().toString();

if(myStringSub.equals(null))

{

return;

}

num1=Double.valueOf(myStringSub);

tvResult.setText(null);

op=2;

isClickEqu=false;

break;

case R.id.btnMul:

String myStringMul=tvResult.getText().toString();

if(myStringMul.equals(null))

{

return;

}

num1=Double.valueOf(myStringMul);

tvResult.setText(null);

op=3;

isClickEqu=false;

break;

case R.id.btnDiv:

String myStringDiv=tvResult.getText().toString();

if(myStringDiv.equals(null))

{

return;

}

num1=Double.valueOf(myStringDiv);

tvResult.setText(null);

op=4;

isClickEqu=false;

break;

case R.id.btnEqu:

String myStringEqu=tvResult.getText().toString();

if(myStringEqu.equals(null))

{

return;

}

num2=Double.valueOf(myStringEqu);

tvResult.setText(null);

switch (op) {

case 0:

Result=num2;

break;

case 1:

Result=num1+num2;

break;

case 2:

Result=num1-num2;

break;

case 3:

Result=num1*num2;

break;

case 4:

Result=num1/num2;

break;

default:

Result=0;

break;

}

tvResult.setText(String.valueOf(Result));

isClickEqu=true;

break;

default:

break;

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类