第一个android程序简易计算器

感谢慕课网免费提供了学习途径和优秀的课程。

本文参考借鉴了一下博客大部分程序,并做了部分完善。

http://blog.csdn.net/nupt123456789/article/details/7832443


实现效果如下:


布局方式使用线性布局,监听方式使用的是匿名内部类。

布局文件代码:

<LinearLayout 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:orientation="vertical"
    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="com.Groot.simplecalculator.MainActivity" >

    <EditText
        android:id="@+id/displaytext"
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:gravity="end|center_vertical"
        android:background="@drawable/white_bg"
        android:editable="false"
         >

        <requestFocus />
    </EditText>

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:orientation="horizontal"
        >

        <Button
            android:id="@+id/btn_clear"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="@string/clear"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle"
            />

        <Button
            android:id="@+id/btn_del"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/delete"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_divide"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/divide"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_multiply"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/multiply"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

    </LinearLayout>
    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:orientation="horizontal"
        
        >

        <Button
            android:id="@+id/btn_7"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="@string/Num_7"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_8"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/Num_8"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_9"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/Num_9"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_subtract"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/subtract"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle"/>

    </LinearLayout>
    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:orientation="horizontal"
        >

        <Button
            android:id="@+id/btn_4"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="@string/Num_4"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_5"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/Num_5"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_6"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/Num_6"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_add"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/add"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

    </LinearLayout>
    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:gravity="center_horizontal"
        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/btn_1"
	        android:layout_width="60dp"
	        android:layout_height="60dp"
	        android:text="@string/Num_1"
	        android:textSize="20sp"
	        android:background="@drawable/white_selector"
	        style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_2"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/Num_2"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />

        <Button
            android:id="@+id/btn_3"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/Num_3"
            android:textSize="20sp" 
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle"/>

        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            
            >

        <Button
            android:id="@+id/btn_0"
            android:layout_width="130dp"
            android:layout_height="60dp"
            android:text="@string/Num_0"
            android:textSize="20sp" 
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle"/>

        <Button
            android:id="@+id/btn_point"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginLeft="10dip"
            android:text="@string/point"
            android:textSize="20sp"
            android:background="@drawable/white_selector"
            style="?android:attr/borderlessButtonStyle" />
            
        </LinearLayout>
	 </LinearLayout>

	 <Button
	     android:id="@+id/btn_equal"
	     android:layout_width="60dp"
	     android:layout_height="130dp"
	     android:layout_marginLeft="10dip"
	     android:text="@string/equal"
	     android:textSize="20sp" 
	     android:background="@drawable/orange_selector"
	     style="?android:attr/borderlessButtonStyle"/>
	    
    </LinearLayout>

</LinearLayout>


主程序:

package com.Groot.simplecalculator;

import javax.xml.transform.Templates;

import android.R.string;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity {
	Button btn0;
	Button btn1;
	Button btn2;
	Button btn3;
	Button btn4;
	Button btn5;
	Button btn6;
	Button btn7;
	Button btn8;
	Button btn9;
	Button clear;
	Button del;
	Button add;
	Button subtract;
	Button multiply;
	Button divide;
	Button point;
	Button equal;
	EditText showtext;
	
	double num1=0;
	double num2=0;
	double result=0;
	int CalType=0;
	boolean EquBtnDownFlag = false;
	boolean CalBtnDownFlag = false;		
	

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("简易计算器-邱小健");
        showtext = (EditText) findViewById(R.id.displaytext);
        showtext.setText("0");
        btn0 = (Button) findViewById(R.id.btn_0);
        btn1 = (Button) findViewById(R.id.btn_1);
        btn2 = (Button) findViewById(R.id.btn_2);
        btn3 = (Button) findViewById(R.id.btn_3);
        btn4 = (Button) findViewById(R.id.btn_4);
        btn5 = (Button) findViewById(R.id.btn_5);
        btn6 = (Button) findViewById(R.id.btn_6);
        btn7 = (Button) findViewById(R.id.btn_7);
        btn8 = (Button) findViewById(R.id.btn_8);
        btn9 = (Button) findViewById(R.id.btn_9);
        clear = (Button) findViewById(R.id.btn_clear);
        del = (Button) findViewById(R.id.btn_del);
        add = (Button) findViewById(R.id.btn_add);
        subtract = (Button) findViewById(R.id.btn_subtract);
        multiply = (Button) findViewById(R.id.btn_multiply);
        divide = (Button) findViewById(R.id.btn_divide);
        point = (Button) findViewById(R.id.btn_point);
        equal = (Button) findViewById(R.id.btn_equal);
        
        
        
        btn0.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="0";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        
        btn1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="1";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn2.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="2";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn3.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="3";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn4.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="4";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn5.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="5";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn6.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="6";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn7.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="7";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn8.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="8";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
        btn9.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				if(CalBtnDownFlag){
					showtext.setText(null);
					CalBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+="9";
				double num=Double.parseDouble(CalString);
				if ((Math.round(num)-num)==0) {
					CalString = String.valueOf((long)num);
				}
				else {
					CalString = String.valueOf(num);
				}
				showtext.setText(CalString);
			}
		});
       point.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(EquBtnDownFlag){
					showtext.setText(null);
					EquBtnDownFlag= false;
				}
				CharSequence temp =showtext.getText();
				String CalString =temp.toString();
				CalString+=".";
				showtext.setText(CalString);
			}
		});
       add.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				CharSequence temp =showtext.getText();
				// TODO Auto-generated method stub
				if(temp.equals(null)){
					return;
				}
				String CalString =temp.toString();
				num1=Double.parseDouble(CalString);
				CalType=1;
				showtext.setText(CalString);
				CalBtnDownFlag = true;
			}
		});
       subtract.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				CharSequence temp =showtext.getText();
				// TODO Auto-generated method stub
				if(temp.equals(null)){
					return;
				}
				String CalString =temp.toString();
				num1=Double.parseDouble(CalString);
				CalType=2;
				showtext.setText(CalString);
				CalBtnDownFlag = true;
			}
		});
       multiply.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				CharSequence temp =showtext.getText();
				// TODO Auto-generated method stub
				if(temp.equals(null)){
					return;
				}
				String CalString =temp.toString();
				num1=Double.parseDouble(CalString);
				CalType=3;
				showtext.setText(CalString);
				CalBtnDownFlag = true;
			}
		});
       divide.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				CharSequence temp =showtext.getText();
				// TODO Auto-generated method stub
				if(temp.equals(null)){
					return;
				}
				String CalString =temp.toString();
				num1=Double.parseDouble(CalString);
				CalType=4;
				showtext.setText(CalString);
				CalBtnDownFlag = true;
			}
		});
       clear.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				CharSequence temp ="0";
				String CalString =temp.toString();
				
				showtext.setText(CalString);
			}
		});
       del.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				CharSequence temp =showtext.getText();
				if(temp.equals(null)){
					return;
				}
				
				String CalString =temp.toString();
				int str = CalString.length();
				if(str == 1){showtext.setText("0");}
				else {
					CalString = CalString.substring(0, CalString.length()-1);
					showtext.setText(CalString);
				}
				
			}
		});
       equal.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				CharSequence temp =showtext.getText();
				// TODO Auto-generated method stub
				if(temp.equals(null)){
					return;
				}
				if (EquBtnDownFlag) {
					double SecondNum;
					num1 = result;
				}
				else {
					String CalString =temp.toString();
					num2=Double.parseDouble(CalString);
				}
				
				switch(CalType){
				case 0:result=num2;break;
				case 1:result=num1+num2;break;
				case 2:result=num1-num2;break;
				case 3:result=num1*num2;break;
				case 4:result=num1/num2;break;
				default:
					result=0;
					break;
					
				}
				String temp_result =null;
				if ((Math.round(result)-result)==0) {
					temp_result=String.valueOf((long)result);
				}
				else {
					temp_result=String.valueOf(result);
				}
				showtext.setText(temp_result);
				EquBtnDownFlag = true;
			}
		});
       

        
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值