package com.zhi.calculator; //包名
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class MainActivity extends Activity
{
TextView tv;
int[] buttons; //数字按钮数组
int result;
int result0;
int result1;
Button buttonC; //按钮对象声明
Button buttonJia;
Button buttonJian;
Button buttonCheng;
Button buttonChu;
Button buttonDengyu;
String firstValue; //旧输入的值
String secondValue; //新输入的值
int flag=0; //计算标志位,0第一次输入;1加;2减;3乘;4除;5等于
Button temp;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //跳转到main界面
initButton();
//清空按钮的点击事件监听器
buttonC.setOnClickListener
(
new OnClickListener()
{
public void onClick(View v)
{
firstValue="";
secondValue=""; //清空记录
tv.setText(firstValue);
flag=0;
}
}
);
//监听
for(int i=0;i<buttons.length;i++)
{
temp=(Button)findViewById(buttons[i]);
temp.setOnClickListener
( //为Button添加监听器
new OnClickListener()
{
@Override
public void onClick(View v)
{
firstValue=tv.getText().toString().trim();
firstValue=firstValue+String.valueOf(((Button)v).getText());//获得新输入的值
System.out.println("firstValue"+":::"+firstValue);
tv.setText(firstValue);
}
}
);
}
buttonListener(buttonJia,1);
buttonListener(buttonJian,2);
buttonListener(buttonCheng,3);
buttonListener(buttonChu,4);
buttonDengyu.setOnClickListener
(
new OnClickListener()
{
@Override
public void onClick(View v)
{System.out.println(firstValue);
result1=Integer.parseInt(firstValue);
result=0;
boolean Zero=false;
if(flag==1)
{
result=result0+result1;
System.out.println(result0+":"+result1);
}
else if(flag==2)
{
result=result0-result1;
}
else if(flag==3)
{
result=result0*result1;
}
else if(flag==4)
{
if(result1==0) Zero=true;
else result=(int)(result0/result1);
}
if(Zero) tv.setText("除数不能为0");
else
{
String str=(result+"").trim();
System.out.println(str);
tv.setText(str);
}
}
}
);
}
//初始化按钮
public void initButton()
{ //初始化控件资源
tv=(TextView)this.findViewById(R.id.tv); //获取文本框控件对象
firstValue=String.valueOf(tv.getText());secondValue=""; //初始化运算输入数值
buttonC=(Button)this.findViewById(R.id.ButtonC); //获得计算按钮的按钮对象
buttonJia=(Button)this.findViewById(R.id.ButtonJia);
buttonJian=(Button)this.findViewById(R.id.ButtonJian);
buttonCheng=(Button)this.findViewById(R.id.ButtonCheng);
buttonChu=(Button)this.findViewById(R.id.ButtonChu);
buttonDengyu=(Button)this.findViewById(R.id.ButtonDengyu);
buttons=new int[]
{ //记录数值按钮的id
R.id.Button00,R.id.Button01,R.id.Button02,R.id.Button03,R.id.Button04,
R.id.Button05,R.id.Button06,R.id.Button07,R.id.Button08,R.id.Button09
};
}
//按钮监听
public void buttonListener(Button button,final int id)
{
button.setOnClickListener
(
new OnClickListener()
{
@Override
public void onClick(View v)
{
String str=tv.getText().toString().trim();
result0=Integer.parseInt(str);
tv.setText("");//取得一个数后,设置TextView为空
flag=id;
}
}
);
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="5dip">
<TextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:layout_marginRight="5dip"
android:layout_marginLeft="5dip"
android:background="#FFFFFF"
android:layout_gravity="center_vertical|right"
android:textSize="30dip"
android:textColor="#ff0000">
</TextView>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip">
<Button
android:text="7"
android:id="@+id/Button07"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="8"
android:id="@+id/Button08"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="9"
android:id="@+id/Button09"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="+"
android:id="@+id/ButtonJia"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip">
<Button
android:text="4"
android:id="@+id/Button04"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="5"
android:id="@+id/Button05"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="6"
android:id="@+id/Button06"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="-"
android:id="@+id/ButtonJian"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip">
<Button
android:text="1"
android:id="@+id/Button01"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="2"
android:id="@+id/Button02"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="3"
android:id="@+id/Button03"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="*"
android:id="@+id/ButtonCheng"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip">
<Button
android:text="0"
android:id="@+id/Button00"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="c"
android:id="@+id/ButtonC"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="="
android:id="@+id/ButtonDengyu"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
<Button
android:text="/"
android:id="@+id/ButtonChu"
android:layout_width="80dip"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>