Linux中国 | Linux.cn - 我们的Linux中文社区

 找回密码
 加入

QQ登录

QQ登录

搜索

Calculator-Android

热度 16已有 1121 次阅读2010-11-22 14:19 |个人分类:android|关键词:android 程序 分享 学习

好久没来这里了,最近在学习android,分享一个我写的小程序。



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<EditText
	android:id="@+id/inputbox"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:editable="false"
	android:cursorVisible="false"
	android:digits="0123456789"
	android:maxLength="15"
	android:gravity="right"
	android:textSize="25dip"
	android:singleLine="true"
	android:text="@string/clear"
/>
<RelativeLayout
	android:layout_width="fill_parent"
	android:layout_height="wrap_content">
	<Button
		android:id="@+id/clearbutton"
		android:layout_width="80px"
		android:layout_height="wrap_content"
		android:layout_alignParentRight="true"
		android:textSize="25dip"
		android:text="C"		
	/>
</RelativeLayout>
<TableLayout
	android:layout_width="fill_parent"
	android:layout_height="wrap_content">	
	<TableRow
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal"
		android:layout_span="4">
		<Button
			android:id="@+id/btn_7"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="7"		
		/>	
		<Button
			android:id="@+id/btn_8"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="8"		
		/>
		<Button
			android:id="@+id/btn_9"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="9"		
		/>
		<Button
			android:id="@+id/btn_div"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="/"		
		/>
	</TableRow>
	<TableRow
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal"
		android:layout_span="4">
		<Button
			android:id="@+id/btn_4"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="4"		
		/>	
		<Button
			android:id="@+id/btn_5"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="5"		
		/>
		<Button
			android:id="@+id/btn_6"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="6"		
		/>
		<Button
			android:id="@+id/btn_mul"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="*"		
		/>
	</TableRow>
	<TableRow
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal"
		android:layout_span="4">
		<Button
			android:id="@+id/btn_1"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="1"		
		/>	
		<Button
			android:id="@+id/btn_2"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="2"		
		/>
		<Button
			android:id="@+id/btn_3"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="3"		
		/>
		<Button
			android:id="@+id/btn_sub"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="-"		
		/>
	</TableRow>
	<TableRow
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal"
		android:layout_span="4">
		<Button
			android:id="@+id/btn_point"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="."		
		/>	
		<Button
			android:id="@+id/btn_0"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="0"		
		/>
		<Button
			android:id="@+id/btn_equal"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="="		
		/>
		<Button
			android:id="@+id/btn_add"
			android:layout_width="80px"
			android:layout_height="wrap_content"
			android:textSize="25dip"
			android:text="+"		
		/>
	</TableRow>
</TableLayout>
</LinearLayout>
package com.calculator.excise;

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

public class calculator extends Activity {
    /** Called when the activity is first created. */
	private Button[] btn=new Button[10];
	private EditText inputbox;
	private Button btn_div,btn_mul,btn_sub,btn_add,btn_c,btn_point,btn_equal;
    
	public boolean IsBegin=true;
	public boolean IsPoint=false;
	public int numPoint=0;
	public double preData=0;
	public double lastData=0;
	public int signNO=0;
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.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);
        inputbox=(EditText)findViewById(R.id.inputbox);
        btn_div=(Button)findViewById(R.id.btn_div);
        btn_mul=(Button)findViewById(R.id.btn_mul);
        btn_sub=(Button)findViewById(R.id.btn_sub);
        btn_add=(Button)findViewById(R.id.btn_add);
        btn_c=(Button)findViewById(R.id.clearbutton);
        btn_point=(Button)findViewById(R.id.btn_point);
        btn_equal=(Button)findViewById(R.id.btn_equal);
        
        for(int i=0;i<10;++i){
        	btn[i].setOnClickListener(actionPerformed);
        }
        btn_div.setOnClickListener(actionPerformed);
        btn_mul.setOnClickListener(actionPerformed);
        btn_sub.setOnClickListener(actionPerformed);
        btn_add.setOnClickListener(actionPerformed);
        btn_c.setOnClickListener(actionPerformed);
        btn_point.setOnClickListener(actionPerformed);
        btn_equal.setOnClickListener(actionPerformed);
    }
	private OnClickListener actionPerformed = new OnClickListener(){

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			String str=inputbox.getText().toString();
			if(IsBegin){
				for(int i=0;i<10;++i){
					if(v==btn[i]){
						String ch=""+i;
						inputbox.setText(ch);
						preData=i;
						IsBegin=false;
					}
				}
			}
			else{			
				for(int j=0;j<10;++j){
					if(IsPoint){
						if(v==btn[j]){					
							inputbox.setText(str+j);
							++numPoint;
							preData=preData+j*Math.pow(10, -numPoint);					
						}
					}
					else{
						if(v==btn[j]){					
							inputbox.setText(str+j);
							preData=preData*10+j;						
						}
					}					
				}
			}
			if(v==btn_c){
				inputbox.setText("0");
				preData=0;
				lastData=0;
				IsBegin=true;
				IsPoint=false;
				numPoint=0;
				signNO=0;
			}
			else if(v==btn_point){
				inputbox.setText(str+".");
				IsPoint=true;
			}
			else if(v==btn_div){
				lastData=preData;
				IsPoint=false;
				IsBegin=true;
				numPoint=0;
				preData=0;
				signNO=0;
			}
			else if(v==btn_div){
				lastData=preData;
				IsPoint=false;
				IsBegin=true;
				numPoint=0;
				preData=0;
				signNO=1;
			}
			else if(v==btn_mul){
				lastData=preData;
				IsPoint=false;
				IsBegin=true;
				numPoint=0;
				preData=0;
				signNO=2;
			}
			else if(v==btn_sub){
				lastData=preData;
				IsPoint=false;
				IsBegin=true;
				numPoint=0;
				preData=0;
				signNO=3;
			}
			else if(v==btn_add){
				lastData=preData;
				IsPoint=false;
				IsBegin=true;
				numPoint=0;
				preData=0;
				signNO=4;
			}
			else if(v==btn_equal){
				if(signNO==1){
					preData=lastData/preData;
				}
				else if(signNO==2){
					preData=preData*lastData;
				}
				else if(signNO==3){
					preData=lastData-preData;
				}
				else if(signNO==4){
					preData=preData+lastData;
				}
			
				String result=""+preData;
				inputbox.setText(result);
				IsPoint=false;
				IsBegin=true;
				numPoint=0;
				preData=0;
				lastData=0;
				signNO=0;
			}
		}		
	};
}
Calculator-Android

 

本文系雪雪原创,版权归雪雪及Linux中国所有,转贴请注明。

刚表态过的朋友 (0 人)

发表评论 评论 (4 个评论)

回复 绿色圣光 2010-11-22 15:01
计算器?
回复 wxy 2010-11-22 17:25
呵呵,我想做IPAD开发~~~
回复 星火流水 2011-1-12 10:17
android 用的是C语言开发的吧?
回复 fuhualiang 2011-1-14 12:40
nice!

facelist

你需要登录后才可以评论 登录 | 加入

无觅相关文章插件