package com.calculator.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class CalculatorActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
//输入文本框
private EditText edit_input;
//
private boolean needClear;
/*
* 0到9的按钮
*/
private Button btn[] = new Button[10];
/*
* 加减乘除按钮
*/
private Button btn_plus,btn_reduce,btn_multi,btn_div;
/*
* 点按钮、等号按钮、清除按钮、回退按钮
*/
private Button btn_dot,btn_equal,btn_clear,btn_del;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
public void init(){
//按钮0到9
btn[0] = (Button)findViewById(R.id.btn_0);
btn[1] = (Button)findViewById(R.id.btn_1);
btn[2] = (Button)findViewById(R.id.btn_2);
btn[3] = (Button)findViewById(R.id.btn_3);
btn[4] = (Button)findViewById(R.id.btn_4);
btn[5] = (Button)findViewById(R.id.btn_5);
btn[6] = (Button)findViewById(R.id.btn_6);
btn[7] = (Button)findViewById(R.id.btn_7);
btn[8] = (Button)findViewById(R.id.btn_8);
btn[9] = (Button)findViewById(R.id.btn_9);
//按钮加减乘除
btn_plus = (Button)findViewById(R.id.btn_plus);
btn_reduce = (Button)findViewById(R.id.btn_reduce);
btn_multi = (Button)findViewById(R.id.btn_multiply);
btn_div = (Button)findViewById(R.id.btn_divide);
//点、等号、清除、回退按钮
btn_dot = (Button)findViewById(R.id.btn_dot);
btn_equal = (Button)findViewById(R.id.btn_equal);
btn_clear = (Button)findViewById(R.id.btn_clear);
btn_del = (Button)findViewById(R.id.btn_del);
//输入文本框
edit_input = (EditText)findViewById(R.id.et_input);
btn[0].setOnClickListener(this);
btn[1].setOnClickListener(this);
btn[2].setOnClickListener(this);
btn[3].setOnClickListener(this);
btn[4].setOnClickListener(this);
btn[5].setOnClickListener(this);
btn[6].setOnClickListener(this);
btn[7].setOnClickListener(this);
btn[8].setOnClickListener(this);
btn[9].setOnClickListener(this);
btn_plus.setOnClickListener(this);
btn_reduce.setOnClickListener(this);
btn_multi.setOnClickListener(this);
btn_div.setOnClickListener(this);
btn_dot.setOnClickListener(this);
btn_equal.setOnClickListener(this);
btn_clear.setOnClickListener(this);
btn_del.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String str = edit_input.getText().toString();
switch (v.getId()) {
case R.id.btn_0:
case R.id.btn_1:
case R.id.btn_2:
case R.id.btn_3:
case R.id.btn_4:
case R.id.btn_5:
case R.id.btn_6:
case R.id.btn_7:
case R.id.btn_8:
case R.id.btn_9:
case R.id.btn_dot:
if(needClear){
str = "";
edit_input.setText("");
}
edit_input.setText(str+((Button)v).getText());
needClear = false;
break;
case R.id.btn_plus:
case R.id.btn_reduce:
case R.id.btn_multiply:
case R.id.btn_divide:
if(needClear){
edit_input.setText("");
}
edit_input.setText(str+" "+((Button)v).getText());
needClear = false;
break;
case R.id.btn_clear:
edit_input.setText("");
break;
case R.id.btn_del:
if(str!=null&&!str.equals("")){
edit_input.setText(str.substring(0, str.length()-1));
}
break;
case R.id.btn_equal:
calculator();
break;
default:
break;
}
}
public void calculator(){
needClear = true;
String exp = edit_input.getText().toString();
if(!exp.contains("+")&&!exp.contains("-")&&!exp.contains("×")&&!exp.contains("÷")){
edit_input.setText(exp);
return;
}
int spacePos = exp.indexOf(' ');// 用于搜索空格位置
String s1 = exp.substring(0, spacePos);// s1用于保存第一个运算数
String op = exp.substring(spacePos + 1, spacePos + 2);// op用于保存运算符
String s2 = exp.substring(spacePos + 3);// s2用于保存第二个运算数
if(s1.equals("")){
s1 = "0";
}
if(s2.equals("")){
s2 = "0";
}
double r = 0;
double arg1 = Double.parseDouble(s1);
double arg2 = Double.parseDouble(s1);
if(op.equals("+")){
r = arg1 + arg2;
}else if(op.equals("-")){
r = arg1 - arg2;
}else if(op.equals("×")){
r = arg1 * arg2;
}else if(op.equals("÷")){
if(arg2 == 0){
r = 0;
}else{
r = arg1 / arg2;
}
}
if(!s1.contains(".")&&!s2.contains(".")){
int res = (int)r;
edit_input.setText(res + "");
}else{
edit_input.setText(r + "");
}
}
}
Android计算器代码
1星 需积分: 10 187 浏览量
2015-09-20
21:44:35
上传
评论 1
收藏 205KB RAR 举报
smileNicky
- 粉丝: 2w+
- 资源: 406