zoukankan      html  css  js  c++  java
  • 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>
    


  • 相关阅读:
    怎么让百度搜到第一页有自己的
    凡信(超仿微信Android版)开源了,内有源码下载
    可以在GitHub或者码云里 直接搜索 项目 比如 哔哩哔哩
    看雪论坛 破解exe 看雪CTF2017第一题分析-『CrackMe』-看雪安全论坛
    Tomcat+Apache集群方案
    ddms 安卓录制
    Less基础教程
    div+css中height:auto !important; height:663px; min-height:663px !important;区别
    js自定义修改复选框单选框样式,清除复选框单选框默认样式
    css input checkbox和radio样式美化
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3851819.html
Copyright © 2011-2022 走看看