当前位置: 代码迷 >> Android >> android实现计算器效能
  详细解决方案

android实现计算器效能

热度:6   发布时间:2016-04-28 06:03:34.0
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>


2楼u014795655昨天 10:50
代码比较详细如果适当有些标注更好一些
Re: Dinivity123昨天 23:00
回复u014795655n恩,以后会注意的。O(∩_∩)O~~
Re: Dinivity123昨天 10:50
回复u014797380nandroid刚入门,刚学布局,以后多指点。
  相关解决方案