安卓简易计算器的实现
设计布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rowCount="6"
android:columnCount="4"
>
<!--文本标签-->
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:layout_marginLeft="4px"
android:gravity="left"
android:text="0"
android:textSize="50dip"
/>
<Button
android:id="@+id/Buttonc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:text="清除"
android:textSize="26sp"/>
<Button
android:id="@+id/Button1"
android:text="1"
android:textSize="26sp" />
<Button
android:id="@+id/Button2"
android:text="2"
android:textSize="26sp" />
<Button
android:id="@+id/Button3"
android:text="3"
android:textSize="26sp" />
<Button
android:id="@+id/Buttonadd"
android:text="+"
android:textSize="26sp" />
<Button
android:id="@+id/Button4"
android:text="4"
android:textSize="26sp" />
<Button
android:id="@+id/Button5"
android:text="5"
android:textSize="26sp" />
<Button
android:id="@+id/Button6"
android:text="6"
android:textSize="26sp" />
<Button
android:id="@+id/Buttonminus"
android:text="-"
android:textSize="26sp" />
<Button
android:id="@+id/Button7"
android:text="7"
android:textSize="26sp" />
<Button
android:id="@+id/Button8"
android:text="8"
android:textSize="26sp" />
<Button
android:id="@+id/Button9"
android:text="9"
android:textSize="26sp" />
<Button
android:id="@+id/Buttonmul"
android:text="*"
android:textSize="26sp" />
<Button
android:id="@+id/Buttonpoint"
android:text="."
android:textSize="26sp" />
<Button
android:id="@+id/Button0"
android:text="0"
android:textSize="26sp" />
<Button
android:id="@+id/Buttonsum"
android:text="="
android:textSize="26sp" />
<Button
android:id="@+id/Buttondiv"
android:text="/"
android:textSize="26sp" />
</GridLayout>
设计控制程序MainActivity.java ,实现具体功能
package com.example.jisuanqi;
import android.provider.Settings ;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv;
int buttons[] ; //数字按钮数组
Button buttonc; //清除按钮
Button buttonadd; //加法按钮
Button buttonminus; //减法按钮
Button buttonmul; //乘法按钮
Button buttondiv; // 除法按钮
Button buttonsum; // 等于按钮
String num1, num2 ; //先输入跟后输入的值
int result;
int result0;
int result1;
int op = 0;// 计算器标位,0:第一次输入,1-4分别代表“+、-、*、/”
Button t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initButton();//清空按钮点击事件
buttonc.setOnClickListener(new View.OnClickListener() { //监听
@Override
public void onClick(View view){
num1="";
num2="";
tv.setText("0");
result=0;
result0=0;
result1=0;
op=0;
}
});
for(int i=0;i<buttons.length;i++){
t=getBtnForId(buttons[i]);
t.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
if (op!=0){
num1="";
}else{
num1=tv.getText() .toString() .trim() ;
if (num1.equals("0") ){
num1="";
}
}
num1=num1+String .valueOf(((Button)view).getText() ) ; //获取新值
tv.setText(num1) ;
}
});
}
buttonListener(buttonadd,1);
buttonListener(buttonminus,2);
buttonListener(buttonmul,3);
buttonListener(buttondiv,4);
buttonsum.setOnClickListener(new View.OnClickListener (){
@Override
public void onClick(View view){
result1=Integer .parseInt(num1) ;
if(op==1){ //进行加法运算
result=result0+result1;
}else if(op==2){ //进行减法运算
result=result0-result1;
}else if (op==3){ //进行乘法运算
result=result0*result1;
}else if (op==4){ //进行除法运算
if (result1==0){
Toast.makeText(MainActivity.this,"除数不能为0",Toast.LENGTH_SHORT ).show();
}else{
result=result0/result1;
}
}else if(op==0){
result=result1;
}
String str=(result+"").trim() ;
if(result1==0 && op==4){
str="错误";
}
tv.setText(str) ;
Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT ).show() ; //在文本编辑框输出结果
}
});
}
public void initButton(){ //数据初始化
tv=(TextView )this.findViewById(R.id.tv) ;
num1=String.valueOf(tv.getText() ) ;
num2="";
buttonc=getBtnForId(R.id.Buttonc);
buttonadd=getBtnForId(R.id.Buttonadd);
buttonminus=getBtnForId(R.id.Buttonminus);
buttonmul=getBtnForId(R.id.Buttonmul);
buttondiv=getBtnForId(R.id.Buttondiv);
buttons =new int[]{
R.id .Button0,R.id .Button1,R.id .Button2,R.id .Button3,R.id .Button4,R.id .Button5,
R.id .Button6,R.id .Button7,R.id .Button8,R.id .Button9,
};
}
public Button getBtnForId (int rID){ //根据id来获取button
Button btn=(Button)this.findViewById(rID ) ;
return btn;
}
public void buttonListener(Button button,final int id){ //加减乘除按钮监听,根据id等于多少来判断运用哪个算法
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
String str=tv.getText() .toString() .trim() ;
result0 = Integer .parseInt(str) ;
op=id;
}
}) ;
}
}
运行图片如下:
初始界面
加法运算
减法运算
乘法运算
除法运算