Android 之计算器

在火热android应用的今天 app往往被附上了一层神秘的面纱  在真实中的app却没有想象中的那么让人不可及  希望我能帮你打开简单android应用的神秘面纱

/JiSuanQi/src/com/jisuanqiexample/jisuanqi/MainActivity.java

import java.math.BigDecimal;

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

public class MainActivity extends Activity {
	private EditText NameEdit;
	private Button NameButton1;
	private Button NameButton2;
	private Button NameButton3;
	private Button NameButton4;
	private Button NameButton5;
	private Button NameButton6;
	private Button NameButton7;
	private Button NameButton8;
	private Button NameButton9;
	private Button NameButton0;
	private Button NameButtonJia;
	private Button NameButtonJian;
	private Button NameButtonCheng;
	private Button NameButtonChu;
	private Button NameButtonHuiChe;
	private Button NameButtonC;
	private Button NameButtonDengHao;
	private Button NameButtonZhengFu;
	private Button NameButtonDian;
	

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        NameEdit = (EditText)findViewById(R.id.et_nameText);
        
        NameButtonC = (Button)findViewById(R.id.but1_nameC);
        NameButtonChu = (Button)findViewById(R.id.but2_nameChu);
        NameButtonCheng = (Button)findViewById(R.id.but3_nameCheng);
        NameButtonHuiChe = (Button)findViewById(R.id.but4_nameHuiChe);
        
        NameButton7 = (Button)findViewById(R.id.but5_name7);
        NameButton8 = (Button)findViewById(R.id.but6_name8);
        NameButton9 = (Button)findViewById(R.id.but7_name9);
        NameButtonJian = (Button)findViewById(R.id.but8_nameJian);
        
        NameButton4 = (Button)findViewById(R.id.but9_name4);
        NameButton5 = (Button)findViewById(R.id.but10_name5);
        NameButton6 = (Button)findViewById(R.id.but11_name6);
        NameButtonJia = (Button)findViewById(R.id.but12_nameJia);
        
        NameButton1 = (Button)findViewById(R.id.but13_name1);
        NameButton2 = (Button)findViewById(R.id.but14_name2);
        NameButton3 = (Button)findViewById(R.id.but15_name3);
        NameButtonDian = (Button)findViewById(R.id.but16_nameDian);
        
        NameButton0 = (Button)findViewById(R.id.but17_name0);
        NameButtonZhengFu = (Button)findViewById(R.id.but18_nameZhengFu);
        NameButtonDengHao = (Button)findViewById(R.id.but19_nameDengHao);
        
        shuzijianting sj = new shuzijianting();
        
        NameButton1.setOnClickListener(sj);
        NameButton2.setOnClickListener(sj);
        NameButton3.setOnClickListener(sj);
        NameButton4.setOnClickListener(sj);
        NameButton5.setOnClickListener(sj);
        NameButton6.setOnClickListener(sj);
        NameButton7.setOnClickListener(sj);
        NameButton8.setOnClickListener(sj);
        NameButton9.setOnClickListener(sj);
        NameButton0.setOnClickListener(sj);
        NameButtonC.setOnClickListener(sj);
        NameButtonChu.setOnClickListener(sj);
        NameButtonCheng.setOnClickListener(sj);
        NameButtonHuiChe.setOnClickListener(sj);
        NameButtonJian.setOnClickListener(sj);
        NameButtonJia.setOnClickListener(sj);
        NameButtonDian.setOnClickListener(sj);
        NameButtonZhengFu.setOnClickListener(sj);
        NameButtonDengHao.setOnClickListener(sj);
        
    	
    }
    private class shuzijianting implements View.OnClickListener {
		String sss1, sss2, sss3;
		@Override
		public void onClick(View v) {
			if (v.getId() >= R.id.but5_name7 & v.getId() <= R.id.but7_name9) {
				// 编辑框就在原有的基础上加上新的数字
				NameEdit.setText(NameEdit.getText().toString()
						+ ((Button) findViewById(v.getId())).getText());
			}
			if (v.getId() == R.id.but16_nameDian) {
				// 编辑框就在原有的基础上加上新的数字
				NameEdit.setText(NameEdit.getText().toString()
						+ ((Button) findViewById(v.getId())).getText());
			}
			if (v.getId() >= R.id.but9_name4 & v.getId() <= R.id.but11_name6) {
				NameEdit.setText(NameEdit.getText().toString()
						+ ((Button) findViewById(v.getId())).getText());
			}
			if (v.getId() >= R.id.but13_name1 & v.getId() <= R.id.but15_name3) {
				NameEdit.setText(NameEdit.getText().toString()
						+ ((Button) findViewById(v.getId())).getText());
			}
			if (v.getId() == R.id.but17_name0) {
				NameEdit.setText(NameEdit.getText().toString()
						+ ((Button) findViewById(v.getId())).getText());
			}
			// 如果点击是运算符号时
			if (v.getId() == R.id.but12_nameJia) {
				sss1 = NameEdit.getText().toString();
				// 文本框清空
				NameEdit.setText("");
				// 把按钮的值给sss3赋值
				sss3 = ((Button) findViewById(v.getId())).getText().toString();
			}
			if (v.getId() == R.id.but8_nameJian) {
				sss1 = NameEdit.getText().toString();
				NameEdit.setText("");
				sss3 = ((Button) findViewById(v.getId())).getText().toString();
			}
			if (v.getId() == R.id.but3_nameCheng) {
				sss1 = NameEdit.getText().toString();
				NameEdit.setText("");
				sss3 = ((Button) findViewById(v.getId())).getText().toString();
			}
			if (v.getId() == R.id.but2_nameChu) {
				sss1 = NameEdit.getText().toString();
				NameEdit.setText("");
				sss3 = ((Button) findViewById(v.getId())).getText().toString();
			}
			if (v.getId() == R.id.but18_nameZhengFu) {
				sss1 = NameEdit.getText().toString();
				// 文本框加负号
				NameEdit.setText("-"+sss1);
				sss3 = ((Button) findViewById(v.getId())).getText().toString();
			}
			if (v.getId() == R.id.but4_nameHuiChe) {
				sss1 = NameEdit.getText().toString();
				sss1 = backString(sss1);
				NameEdit.setText(sss1);
				// 把按钮的值给sss3赋值
				sss3 = ((Button) findViewById(v.getId())).getText().toString();
			}
			// 如果点击时等于时
			else if (v.getId() == R.id.but19_nameDengHao) {
				// 把编辑框里的数字给sss2赋值
				sss2 = NameEdit.getText().toString();
				// 判断sss3是什么运算符号
				if (sss3.equals("+")) {
					// 把运算结果给编辑框赋值
					NameEdit.setText("" + ((new BigDecimal(sss1)).add(new BigDecimal(sss2))));
				} else if (sss3.equals("-")) {
					NameEdit.setText("" + ((new BigDecimal(sss1)).subtract(new BigDecimal(sss2))));
				} else if (sss3.equals("*")) {
					NameEdit.setText("" + ((new BigDecimal(sss1)).multiply(new BigDecimal(sss2))));
				} else if (sss3.equals("/")) {
					NameEdit.setText("" + ((new BigDecimal(sss1)).divide(new BigDecimal(sss2))));
				} else if (sss3.equals("+/-")) {
					NameEdit.setText("" + (new Double(sss1)* (-1)));
				}/* else if (sss3.equals("←")) {
					NameEdit.setText("" + (new Double(sss3)));
				}*/
			}
			// 如果点击C(清零)时
			else if (v.getId() == R.id.but1_nameC) {
				NameEdit.setText("");

			}
		}
	}
    
    public String backString(String str){
    	if(str.length() == 0)
    	{
    		return "";
    	}
    	str = str.substring(0,str.length()-1);
    	return str;
    }
}

界面层配置文件
/JiSuanQi/res/layout/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/et_nameText"
            android:layout_width="match_parent"
            android:gravity="right"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/but1_nameC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonC" />

        <Button
            android:id="@+id/but2_nameChu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonChu" />

        <Button
            android:id="@+id/but3_nameCheng"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonCheng" />

        <Button
            android:id="@+id/but4_nameHuiChe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonHuiChe" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/but5_name7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton7" />

        <Button
            android:id="@+id/but6_name8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton8" />

        <Button
            android:id="@+id/but7_name9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton9" />

        <Button
            android:id="@+id/but8_nameJian"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonJian" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/but9_name4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton4" />

        <Button
            android:id="@+id/but10_name5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton5" />

        <Button
            android:id="@+id/but11_name6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton6" />

        <Button
            android:id="@+id/but12_nameJia"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonJia" />
    </LinearLayout>
<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
  
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/but13_name1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton1" />

        <Button
            android:id="@+id/but14_name2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton2" />

        <Button
            android:id="@+id/but15_name3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton3" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/but16_nameDian"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonDian" />

        <Button
            android:id="@+id/but17_name0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButton0" />

        <Button
            android:id="@+id/but18_nameZhengFu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/NameButtonZhengFu" />

        
    </LinearLayout>
  </LinearLayout>
  <Button
            android:id="@+id/but19_nameDengHao"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:text="@string/NameButtonDengHao" />
  </LinearLayout>
</LinearLayout> 

写的东西还有很多不足  多多指正  接受批评

运行结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值