android实现计算器功能

设计一个简单的计算器。

第一个Activity的界面。

 

第二个Activity显示算式和计算结果。

第一个Activity代码:

 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	Button one,two,three,four,five,six,seven,eight,nine,zero,div,mod,mul,fenshu,sub,equal,point,add;
	double num1,num2,num,xiaoshudian;
	int flag,ispoint;
	char operation[]=new char[2];
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		num1=0;num2=0;num=0;flag=0;ispoint=0;xiaoshudian=0.1;
		one=(Button)findViewById(R.id.one);
		two=(Button)findViewById(R.id.two);
		three=(Button)findViewById(R.id.three);
		four=(Button)findViewById(R.id.four);
		five=(Button)findViewById(R.id.five);
		six=(Button)findViewById(R.id.six);
		seven=(Button)findViewById(R.id.seven);
		eight=(Button)findViewById(R.id.eight);
		nine=(Button)findViewById(R.id.nine);
		zero=(Button)findViewById(R.id.zero);
		div=(Button)findViewById(R.id.div);
		mod=(Button)findViewById(R.id.mod);
		mul=(Button)findViewById(R.id.mul);
		fenshu=(Button)findViewById(R.id.fenshu);
		sub=(Button)findViewById(R.id.sub);
		add=(Button)findViewById(R.id.add);
		equal=(Button)findViewById(R.id.equal);
		point=(Button)findViewById(R.id.point);
		one.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+1;
					else {num1=num1+1*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+1;
					else{num2=num2+1*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		two.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+2;
					else {num1=num1+2*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+2;
					else{num2=num2+2*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		three.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+3;
					else {num1=num1+3*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+3;
					else{num2=num2+3*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		four.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+4;
					else {num1=num1+4*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+4;
					else{num2=num2+4*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		five.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+5;
					else {num1=num1+5*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+5;
					else{num2=num2+5*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		six.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+6;
					else {num1=num1+6*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+6;
					else{num2=num2+6*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		seven.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+7;
					else {num1=num1+7*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+7;
					else{num2=num2+7*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		eight.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+8;
					else {num1=num1+8*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+8;
					else{num2=num2+8*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		nine.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10+9;
					else {num1=num1+9*xiaoshudian;xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10+9;
					else{num2=num2+9*xiaoshudian;xiaoshudian/=10;}
				}
			}
		});
		zero.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==0){
					if(ispoint==0)num1=num1*10;
					else {xiaoshudian/=10;}
				}
				else{
					if(ispoint==0)num2=num2*10;
					else{xiaoshudian/=10;}
				}
			}
		});
		point.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				ispoint=1;
			}
		});
		add.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				flag=1;
				ispoint=0;
			}
		});
		sub.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				flag=2;
				ispoint=0;
			}
		});
		mul.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				flag=3;
				ispoint=0;
			}
		});
		div.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				flag=4;
				ispoint=0;
			}
		});
		equal.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				if(flag==1){num=num1+num2;operation[0]='+';}
				else if(flag==2){num=num1-num2;operation[0]='-';}
				else if(flag==3){num=num1*num2;operation[0]='*';}
				else if(flag==4){num=num1/num2;operation[0]='/';}
				Intent intent=new Intent(MainActivity.this,SecondActivity.class);
				intent.putExtra("num1", new Double(num1).toString());
				intent.putExtra("opreation",new String(operation).toString());
				intent.putExtra("num2", new Double(num2).toString());
				intent.putExtra("num", new Double(num).toString());
				startActivity(intent);
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}


}


第二个Activity代码:

 

 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class SecondActivity extends Activity{
	EditText text;
	Button myButton;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.second);
		text=(EditText)findViewById(R.id.edt);
		myButton=(Button)findViewById(R.id.btn);
		Intent intent=getIntent();
		String num1=intent.getStringExtra("num1");
		String operation=intent.getStringExtra("opreation");
		String num2=intent.getStringExtra("num2");
		String num=intent.getStringExtra("num");
		text.setText(num1+operation+num2+"="+num);
		myButton.setOnClickListener(new myButtonListener());
	}
	class myButtonListener implements OnClickListener{
		public void onClick(View arg0){
			Intent intent=new Intent(SecondActivity.this,MainActivity.class);
			startActivity(intent);
		}
	}
}


第一个Activity布局:

 

 

<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="match_parent"
    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=".MainActivity" >
	<Button
	    android:id="@+id/seven"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="7"
	    />
	<Button
	    android:id="@+id/eight"
	    android:layout_toRightOf="@id/seven"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="8"
	    />
	<Button
	    android:id="@+id/nine"
	    android:layout_toRightOf="@id/eight"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="9"
	    />
	<Button
	    android:id="@+id/div"
	    android:layout_toRightOf="@id/nine"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="/"
	    />
	<Button
	    android:id="@+id/mod"
	    android:layout_toRightOf="@id/div"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="%"
	    />
	<Button
	    android:id="@+id/four"
	    android:layout_below="@id/seven"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="4"
	    />
	<Button
	    android:id="@+id/five"
	    android:layout_toRightOf="@id/four"
	    android:layout_below="@id/eight"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="5"
	    />
	<Button
	    android:id="@+id/six"
	    android:layout_toRightOf="@id/five"
	    android:layout_below="@id/nine"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="6"
	    />
	<Button
	    android:id="@+id/mul"
	    android:layout_toRightOf="@id/six"
	    android:layout_below="@id/div"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="*"
	    />
	<Button
	    android:id="@+id/fenshu"
	    android:layout_toRightOf="@id/mul"
	    android:layout_below="@id/mod"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="1/x"
	    />
	<Button
	    android:id="@+id/one"
	    android:layout_below="@id/four"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="1"
	    />
	<Button
	    android:id="@+id/two"
	    android:layout_toRightOf="@id/one"
	    android:layout_below="@id/five"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="2"
	    />
	<Button
	    android:id="@+id/three"
	    android:layout_toRightOf="@id/two"
	    android:layout_below="@id/six"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="3"
	    />
	<Button
	    android:id="@+id/sub"
	    android:layout_toRightOf="@id/three"
	    android:layout_below="@id/mul"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="-"
	    />
	<Button
	    android:id="@+id/equal"
	    android:layout_toRightOf="@id/sub"
	    android:layout_below="@id/fenshu"
	    android:layout_width="40px"
        android:layout_height="70px"
        android:text="="
	    />
	<Button
	    android:id="@+id/zero"
	    android:layout_below="@id/one"
	    android:layout_width="80px"
        android:layout_height="wrap_content"
        android:text="0"
	    />
	<Button
	    android:id="@+id/point"
	    android:layout_toRightOf="@id/zero"
	    android:layout_below="@id/three"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="."
	    />
	<Button
	    android:id="@+id/add"
	    android:layout_toRightOf="@id/point"
	    android:layout_below="@id/sub"
	    android:layout_width="40px"
        android:layout_height="wrap_content"
        android:text="+"
	    />

</RelativeLayout>


第二个Activity布局:

 

 

<?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" >
    
<EditText
     android:id="@+id/edt"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@id/one"
     />  
<Button
     android:id="@+id/btn"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@id/edt"
     android:text="返回"
     />  
</LinearLayout>

 

 

 

 

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现一个 Android 计算器需要以下步骤: 1. 创建一个新的 Android 项目,并在 layout 文件夹中创建一个布局文件,用于显示计算器的界面。界面可以包括数字按钮、运算符按钮、清除按钮、等于号按钮和文本框等。 2. 在 MainActivity.java 中编写代码,实现计算器的逻辑功能。可以使用 Java 中的数学运算符和方法来实现计算器的加减乘除等功能。 3. 在 MainActivity.java 中编写代码,实现按钮的点击事件。可以使用 OnClickListener 接口来处理按钮的点击事件。 4. 在 AndroidManifest.xml 文件中添加权限,以允许应用程序访问互联网。 以下是一个简单的 Android 计算器示例代码: 1. 布局文件 activity_main.xml: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/result_textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="30sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="1" /> <Button android:id="@+id/button_2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="2" /> <Button android:id="@+id/button_3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="3" /> <Button android:id="@+id/button_add" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="+" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="4" /> <Button android:id="@+id/button_5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="5" /> <Button android:id="@+id/button_6" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="6" /> <Button android:id="@+id/button_subtract" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="-" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_7" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="7" /> <Button android:id="@+id/button_8" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="8" /> <Button android:id="@+id/button_9" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="9" /> <Button android:id="@+id/button_multiply" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="×" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button_clear" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="C" /> <Button android:id="@+id/button_0" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="0" /> <Button android:id="@+id/button_equal" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="=" /> <Button android:id="@+id/button_divide" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="÷" /> </LinearLayout> </LinearLayout> ``` 2. MainActivity.java 文件: ```java public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView resultTextView; private Button button1, button2, button3, button4, button5, button6, button7, button8, button9, button0; private Button buttonAdd, buttonSubtract, buttonMultiply, buttonDivide, buttonEqual, buttonClear; private String currentNumber = ""; private String lastNumber = ""; private String lastOperator = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultTextView = findViewById(R.id.result_textview); button1 = findViewById(R.id.button_1); button2 = findViewById(R.id.button_2); button3 = findViewById(R.id.button_3); button4 = findViewById(R.id.button_4); button5 = findViewById(R.id.button_5); button6 = findViewById(R.id.button_6); button7 = findViewById(R.id.button_7); button8 = findViewById(R.id.button_8); button9 = findViewById(R.id.button_9); button0 = findViewById(R.id.button_0); buttonAdd = findViewById(R.id.button_add); buttonSubtract = findViewById(R.id.button_subtract); buttonMultiply = findViewById(R.id.button_multiply); buttonDivide = findViewById(R.id.button_divide); buttonEqual = findViewById(R.id.button_equal); buttonClear = findViewById(R.id.button_clear); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); button4.setOnClickListener(this); button5.setOnClickListener(this); button6.setOnClickListener(this); button7.setOnClickListener(this); button8.setOnClickListener(this); button9.setOnClickListener(this); button0.setOnClickListener(this); buttonAdd.setOnClickListener(this); buttonSubtract.setOnClickListener(this); buttonMultiply.setOnClickListener(this); buttonDivide.setOnClickListener(this); buttonEqual.setOnClickListener(this); buttonClear.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button_0: currentNumber += "0"; break; case R.id.button_1: currentNumber += "1"; break; case R.id.button_2: currentNumber += "2"; break; case R.id.button_3: currentNumber += "3"; break; case R.id.button_4: currentNumber += "4"; break; case R.id.button_5: currentNumber += "5"; break; case R.id.button_6: currentNumber += "6"; break; case R.id.button_7: currentNumber += "7"; break; case R.id.button_8: currentNumber += "8"; break; case R.id.button_9: currentNumber += "9"; break; case R.id.button_add: lastOperator = "+"; lastNumber = currentNumber; currentNumber = ""; break; case R.id.button_subtract: lastOperator = "-"; lastNumber = currentNumber; currentNumber = ""; break; case R.id.button_multiply: lastOperator = "*"; lastNumber = currentNumber; currentNumber = ""; break; case R.id.button_divide: lastOperator = "/"; lastNumber = currentNumber; currentNumber = ""; break; case R.id.button_equal: double result = calculateResult(); resultTextView.setText(String.valueOf(result)); currentNumber = String.valueOf(result); lastOperator = ""; lastNumber = ""; break; case R.id.button_clear: currentNumber = ""; lastNumber = ""; lastOperator = ""; resultTextView.setText(""); break; } resultTextView.setText(currentNumber); } private double calculateResult() { double result = 0.0; double current = Double.parseDouble(currentNumber); double last = Double.parseDouble(lastNumber); switch (lastOperator) { case "+": result = last + current; break; case "-": result = last - current; break; case "*": result = last * current; break; case "/": result = last / current; break; } return result; } } ``` 在 AndroidManifest.xml 文件中添加以下权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 这样,就可以实现一个简单的 Android 计算器了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值