android-简便计算器

自己做的简单计算器。

老规矩。右键取得图片地址,利用下载工具下载这个显示不出来的图片。后缀改为rar即可得到源代码项目。


就一个activity

package zhang.calculator;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MyCalculator extends Activity { 
	private Vibrator vibrator;  
	private Double num_a;
	private Double num_b;
	private TextView text = null;
	private String temp = null;// 计算符号
	private boolean isDot = true;// 小数点控制
	private boolean clickable = true;// 标志是否按过计算按钮
	private double memoryd; // 使用内存中存储的数字
	private int memoryi;
	private TextView lable=null;
	private boolean isVib=true;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.calculator_main);
	    final Button num1 = (Button) findViewById(R.id.num1);
		final Button num2 = (Button) findViewById(R.id.num2);
		final Button num3 = (Button) findViewById(R.id.num3);
		final Button num4 = (Button) findViewById(R.id.num4);
		final Button num5 = (Button) findViewById(R.id.num5);
		final Button num6 = (Button) findViewById(R.id.num6);
		final Button num7 = (Button) findViewById(R.id.num7);
		final Button num8 = (Button) findViewById(R.id.num8);
		final Button num9 = (Button) findViewById(R.id.num9);
	    Button num0 = (Button) findViewById(R.id.zero);
		Button point=(Button) findViewById(R.id.point);
		Button mul=(Button)findViewById(R.id.mul);
		Button sub=(Button)findViewById(R.id.sub);
		Button add=(Button)findViewById(R.id.add);
		Button div=(Button)findViewById(R.id.div);
		Button sqrt=(Button)findViewById(R.id.sqrt);
		Button equal=(Button) findViewById(R.id.equal);
		Button c=(Button) findViewById(R.id.clear);
		Button cm=(Button)findViewById(R.id.clearm);
		Button m=(Button)findViewById(R.id.memory);
		Button tf=(Button)findViewById(R.id.tf);
		Button mshow=(Button)findViewById(R.id.showmemory);
		Button back=(Button)findViewById(R.id.back);
		text = (TextView) findViewById(R.id.showText);
		lable = (TextView) findViewById(R.id.lable);
		
		vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);   
		
//0		
		num0.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {			
				zd();
				if(text.getText().toString().equalsIgnoreCase("0")){
				
				}else{
				if (clickable == false) {						
					text.setText("");
					text.setText(text.getText().toString()+"0");
					clickable = true;
				} else {
					text.setText(text.getText().toString()+"0");
				}
			}	
		}
	});
//1
		num1.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num1.getText().toString());
			}
		});
// 2
		num2.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num2.getText().toString());
			}
		});
// 3
		num3.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num3.getText().toString());
			}
		});
// 4
		num4.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num4.getText().toString());
			}
		});
// 5
		num5.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num5.getText().toString());
			}
		});
// 6
		num6.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num6.getText().toString());
			}
		});
// 7
		num7.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num7.getText().toString());
			}
		});
// 8
		num8.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num8.getText().toString());
			}
		});
// 9
		num9.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				show(num9.getText().toString());
			}
		});
//.
		point.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				zd();
					if(text.getText().toString().equalsIgnoreCase("")){
					}else{	
						if (text.getText().toString()!=""&&isDot == true) {
							text.setText(text.getText()+".");
							isDot = false;
						}else{
						text.setText(text.getText().toString());
						}	
					}
				}
			});
//加
		add.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				zd();
				if(text.getText().toString().equalsIgnoreCase("")){
				}else{
				if (text.getText() != null){
					num_a =Double.parseDouble(text.getText().toString());
					temp = "add";
					clickable = false;
					isDot=true;
					lable.setText("+");
					}
				}
			}
	});
//减
		sub.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				zd();
				if(text.getText().toString().equalsIgnoreCase("")){
				}else{
					if (text.getText() != null){
						num_a =Double.parseDouble(text.getText().toString());
						temp = "sub";
						clickable = false;
						lable.setText("—");
					}else{
						text.setText("—");
						}
				isDot=true;
		}
	}
});
//乘
		mul.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				zd();
				if(text.getText().toString().equalsIgnoreCase("")){
				}else{
				if (text.getText() != null){
					num_a =Double.parseDouble(text.getText().toString());
					temp = "mul";
					lable.setText("×");
					clickable = false;
					isDot=true;
					}
				}
			}
		});
// 除
		div.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				zd();
				if(text.getText().toString().equalsIgnoreCase("")){
				}else{
				if (text.getText() != null){
					num_a =Double.parseDouble(text.getText().toString());
					temp = "div";
					lable.setText("÷");
					clickable = false;
					isDot=true;
					}
				}
			}
		});
//开方
		sqrt.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				zd();
				if(text.getText().toString().equalsIgnoreCase("")){
				}else{
				String s = text.getText().toString();
		          if (s.charAt(0) == '-') {
		        	  Toast.makeText(MyCalculator.this, "负数不能开根号!!",Toast.LENGTH_SHORT).show();
		            clickable = false;
		          } else {
		            text.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(text.getText().toString()))));
		lable.setText("√");
		            clickable = false;
		          	}
				}
			}
		});
		
//等于
		equal.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				zd();
				if (temp != null && text.getText() != null){
					num_b = (Double.parseDouble(text.getText().toString()));
					if (temp == "add"){
						text.setText(Float.toString((float) (num_a + num_b)));
						temp = null;
					}else if (temp == "sub"){
						text.setText(Float.toString((float) (num_a - num_b)));
						temp = null;
					}else if (temp == "mul"){
						text.setText(Float.toString((float) (num_a * num_b)));
						temp = null;
					}else if (temp == "div"){
						text.setText(Float.toString((float) (num_a / num_b)));
						temp = null;
					}
					clickable = false;
					if(text.getText().toString()==""){
						isDot =true;
					}else{
						isDot =false;
					}
				}
			}
		});
//c
			c.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				zd();
					text.setText("");
					lable.setText("");
					num_a = 0.0;
					temp = null;
					clickable = false;
					isDot = true;
				}
		});
//cm
			cm.setOnClickListener(new View.OnClickListener() {
				public void onClick(View arg0) {	
					zd();
						memoryd = memoryi = 0;
					}
			});
//m
			m.setOnClickListener(new View.OnClickListener() {
				public void onClick(View arg0) {	
					zd();
					if (text.getText().toString() != " "){
						boolean isDot = false;
						for (int i = 0; i < text.getText().length(); i++){
				            if ('.' == text.getText().charAt(i)) {
				                isDot = true;
				                break;
				            }
						}
						if(text.getText().toString().equalsIgnoreCase("")){
							memoryd = memoryi = 0;
						}
						else{
						if (isDot == true) {
							memoryd = Double.parseDouble(text.getText().toString());
							memoryi = 0; 
						}
						else {	
							memoryi = Integer.parseInt(text.getText().toString());
							memoryd = 0;
						}
						}
						clickable = false;
					}
					}
			});
//ms
			mshow.setOnClickListener(new View.OnClickListener() {
				public void onClick(View arg0) {
					zd();
					if (memoryd != 0) {
			            text.setText(Double.toString(memoryd));
					}
			        if (memoryi != 0) {
			            text.setText(Integer.toString(memoryi));
			        }
			        clickable = false;
				}
			});
//取反
			tf.setOnClickListener(new View.OnClickListener() {
				public void onClick(View arg0) {
						zd();
					if(text.getText().toString().equalsIgnoreCase("")){
					}else{
					boolean isNumber = true;
			          String s = text.getText().toString();
			          for (int i = 0; i < s.length(); i++)
			            if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'
			                  || s.charAt(i) == '.' || s.charAt(i) == '-')) {
			                isNumber = false;
			                break;
			            }
			          if (isNumber == true) {
			            //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉
			            if (s.charAt(0) == '-') {
			                text.setText("");
			                for (int i = 1; i < s.length(); i++) {
			                  char a = s.charAt(i);
			                  text.setText(text.getText().toString() + a);
			                }
			            }
			            //如果当前字符串第一个字符不是符号,则添加一个符号在首字母处
			            else
			                text.setText('-' + s);
			          }
				}}
			});
			
//back
			back.setOnClickListener(new View.OnClickListener() {
				public void onClick(View arg0) {
					zd();
					if(clickable == true)
					if (text.getText().toString() != "") {
				          String s = text.getText().toString();
				          text.setText("");
				          for (int i = 0; i < s.length() - 1; i++) {
				            char a = s.charAt(i);
				            text.setText(text.getText().toString() + a);
				          }
					}
				}
			});		
	}
	public void zd(){	//振动的方法
		if(isVib==true){
		long[] pattern = {0, 20, 0, 10}; // OFF/ON/OFF/ON...   
		vibrator.vibrate(pattern, -1);
		}else{
		
			vibrator.cancel();
		}
	}
	public void show(String i){													//1-9的数
		zd();
		if (clickable == false) {
			text.setText("");
			text.setText(text.getText() + i);
			clickable = true;
		} else {
			text.setText(text.getText() + i);
		}
	}
	public boolean onCreateOptionsMenu(Menu menu) {    //添加菜单
		// TODO Auto-generated method stub
    	menu.add(0, 1, 1,R.string.exit);
    	menu.add(0, 2, 2, R.string.about);
    	menu.add(1,3,3,"开/关震动");
		return super.onCreateOptionsMenu(menu);
	}
	public boolean onOptionsItemSelected(MenuItem item) {  //设置菜单事件
		switch(item.getItemId()){
		case 1:
			finish();
			break;
		case 2:
			AlertDialog.Builder dialog = new AlertDialog.Builder(this);
			dialog.setTitle("关于").setMessage("This is a black cool convenient calculator!\nBy:没落凄凉").show();
			break;
		case 3:
			if(isVib){
				isVib=false;
			}else{
				isVib=true;
			}
		}
		
		
		return super.onOptionsItemSelected(item);	
	}
}
布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent">
    	<TextView
		android:id="@+id/lable" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:singleLine="true" android:scrollHorizontally="true" android:background="@color/black"  android:textColor="@color/write" android:layout_margin="5dip" android:layout_marginBottom="5dip"
	 />
	<TextView
		android:id="@+id/showText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="33dip" android:singleLine="true"  android:scrollHorizontally="true" android:background="@color/black"  android:textColor="@color/write" android:bufferType="editable" android:layout_marginLeft="5dip"  android:maxLength="17"  android:layout_marginRight="5dip"
	/>
	<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center" android:layout_marginTop="5dip" android:paddingTop="5dip">
	    <Button android:text="C"  android:id="@+id/clear" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip" android:textStyle="bold"  android:gravity="center"  android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="CM" android:id="@+id/clearm" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold"  android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="M" android:id="@+id/memory" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold"  android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="MS" android:id="@+id/showmemory" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip" android:textStyle="bold"  android:background="@color/black" android:textColor="@color/write" ></Button>
	</LinearLayout>
	<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center">
	    <Button android:text="+" android:id="@+id/add" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="-" android:id="@+id/sub" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="×"  android:id="@+id/mul" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="÷" android:id="@+id/div" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	</LinearLayout>
	<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center">
	    <Button android:text="1" android:id="@+id/num1" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="2" android:id="@+id/num2" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="3" android:id="@+id/num3" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="√" android:id="@+id/sqrt" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	</LinearLayout>
	<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center">
	    <Button android:text="4" android:id="@+id/num4" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="5" android:id="@+id/num5" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="6" android:id="@+id/num6" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	    <Button android:text="←" android:id="@+id/back" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	</LinearLayout>



	<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center">
		<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" >
	   		 <Button android:text="7" android:id="@+id/num7" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	   		 <Button android:text="0" android:id="@+id/zero" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	   			</LinearLayout>
			<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1"  android:orientation="vertical" >
	   		 <Button android:text="8" android:id="@+id/num8" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	  		 <Button android:text="+/-" android:id="@+id/tf" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	  		
	   		 </LinearLayout>
	   		 	<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" >
	   		 <Button android:text="9" android:id="@+id/num9" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>
	  		 <Button android:text="." android:id="@+id/point" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold"  android:gravity="center" android:background="@color/black" android:textColor="@color/write"></Button>
	  		
	   		 </LinearLayout>
	   		 	<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" >
	   		 <Button android:text="=" android:id="@+id/equal" android:layout_width="75dip" android:layout_height="120dip" android:textSize="50dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"/>
	  		
	  		
	   		 </LinearLayout>
	</LinearLayout>
</LinearLayout>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值