首页>代码>Android简单计算器程序>/Calculator1/src/com/example/calculator1/MainActivity.java
package com.example.calculator1;

import android.app.Activity;
import android.os.Bundle;
import android.view.*;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements View.OnClickListener{
	 	private Button btn_0;//0数字按钮
	    private Button btn_1;//1数字按钮
	    private Button btn_2;//2数字按钮
	    private Button btn_3;//3数字按钮
	    private Button btn_4;//4数字按钮
	    private Button btn_5;//5数字按钮
	    private Button btn_6;//6数字按钮
	    private Button btn_7;//7数字按钮
	    private Button btn_8;//8数字按钮
	    private Button btn_9;//9数字按钮
	    private Button btn_clear;//clear按钮
	    private Button btn_point;//小数点按钮
	    private Button btn_plus;//+按钮
	    private Button btn_minus;//-按钮
	    private Button btn_multply;//*按钮
	    private Button btn_divide;//除号按钮
	    private Button btn_equal;//=按钮
	    private EditText editText;

	    boolean clear_flag;//清空标识

	    @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.activity_main);

	        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_clear = (Button) findViewById(R.id.btn_clear);
	        btn_point = (Button) findViewById(R.id.btn_point);
	        btn_plus = (Button) findViewById(R.id.btn_plus);
	        btn_minus = (Button) findViewById(R.id.btn_minus);
	        btn_multply = (Button) findViewById(R.id.btn_multply);
	        btn_divide = (Button) findViewById(R.id.btn_divide);
	        btn_equal = (Button) findViewById(R.id.btn_equal);
	        editText = (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_clear.setOnClickListener(this);
	        btn_point.setOnClickListener(this);
	        btn_plus.setOnClickListener(this);
	        btn_minus.setOnClickListener(this);
	        btn_multply.setOnClickListener(this);
	        btn_divide.setOnClickListener(this);
	        btn_equal.setOnClickListener(this);
	        editText.setFocusable(false);
	    }

	    @Override
	    public void onClick(View view) {
	        String input = editText.getText().toString();
	        switch (view.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_point:
	                if(clear_flag){
	                    clear_flag = false;
	                    editText.setText("");
	                }
	                editText.setText(input + ((Button)view).getText());
	                break;
	            case R.id.btn_plus:
	            case R.id.btn_minus:
	            case R.id.btn_multply:
	            case R.id.btn_divide:
	                if(clear_flag){
	                    clear_flag = false;
	                    input = "";
	                    editText.setText("");
	                }
	                editText.setText(input + " " + ((Button)view).getText() + " ");
	                break;
	            case R.id.btn_clear:
	                clear_flag = false;
	                input = "";
	                editText.setText("");
	                break;
	            case R.id.btn_equal:
	                getResult();
	                break;
	        }
	    }

	    //运算结果
	    private void getResult(){
	        String exp = editText.getText().toString();
	        if(exp==null||exp.equals(""))
	            return;
	        if(!exp.contains(" "))
	            return;
	        if(clear_flag){
	            clear_flag = false;
	            return;
	        }
	        clear_flag = true;
	        double result = 0;
	        //运算符前的数字
	        String s1 = exp.substring(0,exp.indexOf(" "));
	        //运算符
	        String op = exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);
	        //运算符后的数字
	        String s2 = exp.substring(exp.indexOf(" ")+3);

	        if(!s1.equals("")&&!s2.equals("")) {
	            double d1 = Double.parseDouble(s1);
	            double d2 = Double.parseDouble(s2);
	            if (op.equals("+")) {
	                result = d1 + d2;
	            } else if (op.equals("-")) {
	                result = d1 - d2;
	            } else if (op.equals("*")) {
	                result = d1 * d2;
	            } else if (op.equals("/")) {
	                if (d2 == 0)
	                    result = 0;
	                else
	                    result = d1 / d2;
	            }
	            if (!s1.contains(".") && !s2.contains(".") && !op.equals("/")) {
	                int r = (int) result;
	                editText.setText(r + "");
	            } else
	                editText.setText(result + "");
	        	}else if(!s1.equals("") && s2.equals("")){
	        		editText.setText(exp);
	        	}else if(s1.equals("") && !s2.equals("")){
	        		double d2 = Double.parseDouble(s2);
	        		if (op.equals("+")) {
	        			result = 0 + d2;
	        		} else if (op.equals("-")) {
	        			result = 0 - d2;
	        		} else if (op.equals("*")) {
	        			result = 0;
	        		} else if (op.equals("/")) {
	                    result = 0;
	        		}
	        		if (!s1.contains(".") && !s2.contains(".")) {
	        			int r = (int) result;
	        				editText.setText(r + "");
	        		} else
	        			editText.setText(result + "");
	        	}else {
	        		editText.setText("");
	        	}
	    }
}

最近下载更多
yyyyyyzh  LV8 2023年6月11日
YangYongTao  LV1 2023年4月18日
顶流爱了1里垃圾  LV2 2022年11月19日
hahaxiba  LV1 2022年10月2日
张恺祺  LV6 2022年5月18日
不知归期的故人  LV6 2022年1月5日
aisdjasldsjakd  LV1 2022年1月1日
2017143155  LV12 2021年12月26日
cnyyxh  LV1 2021年12月6日
yuanfen  LV16 2021年11月26日
最近浏览更多
diannian  LV1 9月10日
twilight0428  LV3 8月29日
ttllww 7月1日
暂无贡献等级
南柯寒酥  LV1 6月20日
fei wang 6月18日
暂无贡献等级
万万物 6月8日
暂无贡献等级
lilitu  LV6 5月30日
happySuperman  LV2 5月29日
暂无贡献等级
cyhcyhas  LV1 4月27日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友