实验要求
1.界面按书上例2-9设计
2.实现其具体功能:
1)代码注释
2)在博客上写一个开发日志
实现过程
1.新建项目
使用Android Studio新建一个空项目
2.添加布局
在这里,我是用的是课本例2-9的网格布局,在界面设计区域中设置一个6行4列的网格布局,第1行为显示数据的文本标签,第2行为清除数据的按钮,第3~6行均划分为4列,共安排16个按钮,分别代表了数字0、1、2、......、9及加、减、乘、除、等号等符号。代码如下:
<?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:columnCount="4"
android:rowCount="6">
<!--文本标签-->
<EditText
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:layout_marginLeft="4px"
android:enabled="false"
android:gravity="left"
android:text="0"
android:textSize="50dip" />
<Button
android:id="@+id/cls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:text="清除"
android:textSize="26sp" />
<Button
android:id="@+id/one"
android:text="1"
android:textSize="26sp" />
<Button
android:id="@+id/two"
android:text="2"
android:textSize="26sp" />
<Button
android:id="@+id/three"
android:text="3"
android:textSize="26sp" />
<Button
android:id="@+id/add"
android:text="+"
android:textSize="26sp" />
<Button
android:id="@+id/four"
android:text="4"
android:textSize="26sp" />
<Button
android:id="@+id/five"
android:text="5"
android:textSize="26sp" />
<Button
android:id="@+id/six"
android:text="6"
android:textSize="26sp" />
<Button
android:id="@+id/sub"
android:text="-"
android:textSize="26sp" />
<Button
android:id="@+id/seven"
android:text="7"
android:textSize="26sp" />
<Button
android:id="@+id/eight"
android:text="8"
android:textSize="26sp" />
<Button
android:id="@+id/nine"
android:text="9"
android:textSize="26sp" />
<Button
android:id="@+id/mul"
android:text="*"
android:textSize="26sp" />
<Button
android:id="@+id/spot"
android:text="."
android:textSize="26sp" />
<Button
android:id="@+id/zero"
android:text="0"
android:textSize="26sp" />
<Button
android:id="@+id/equal"
android:text="="
android:textSize="26sp" />
<Button
android:id="@+id/div"
android:text="/"
android:textSize="26sp" />
</GridLayout>
3.MainActivity的编写
这部分就是对各个按钮点击事件的处理,也就是对键入的数字进行运算,判断之类的。代码如下:
package com.example.calculate;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity{
private StringBuilder show_equation=new StringBuilder();//显示运算式
private ArrayList calculate_equation;//计算式
private int signal=0;//为0 时表示刚输入状态;为1 时表示当前在输出结果上继续输入
@Override
protected void onCreate(Bundle savedInstanceState) { //Activity的生命周期法
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
show_equation=new StringBuilder();
calculate_equation=new ArrayList<>();
Button zero=(Button)findViewById(R.id.zero);
Button one=(Button)findViewById(R.id.one);
Button two=(Button)findViewById(R.id.two);
Button three=(Button)findViewById(R.id.three);
Button four=(Button)findViewById(R.id.four);
Button five=(Button)findViewById(R.id.five);
Button six=(Button)findViewById(R.id.six);
Button seven=(Button)findViewById(R.id.seven);
Button eight=(Button)findViewById(R.id.eight);
Button nine=(Button)findViewById(R.id.nine);
Button cls=(Button)findViewById(R.id.cls);
Button div=(Button)findViewById(R.id.div);
Button mul=(Button)findViewById(R.id.mul);
Button sub=(Button)findViewById(R.id.sub);
Button add=(Button)findViewById(R.id.add);
final Button equal=(Button)findViewById(R.id.equal);
final Butt