热度 16 ||
好久没来这里了,最近在学习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;
}
}
};
}