xml代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:layout_editor_absoluteY="25dp">
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="44dp"
android:layout_marginRight="44dp"
android:layout_marginTop="38dp"
android:text="0"
android:textSize="50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:onClick="getNum"
android:text="1"
app:layout_constraintBaseline_toBaselineOf="@+id/two"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="getNum"
android:text="2"
app:layout_constraintEnd_toStartOf="@+id/three"
app:layout_constraintStart_toEndOf="@+id/one"
app:layout_constraintTop_toTopOf="@+id/three" />
<Button
android:id="@+id/three"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="getNum"
android:text="3"
app:layout_constraintBaseline_toBaselineOf="@+id/zero"
app:layout_constraintEnd_toStartOf="@+id/count"
app:layout_constraintStart_toEndOf="@+id/two" />
<Button
android:id="@+id/zero"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:onClick="getNum"
android:text="0"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/five"
android:layout_width="88dp"
android:layout_height="wrap_content"
android:onClick="getNum"
android:text="5"
app:layout_constraintBottom_toTopOf="@+id/one"
app:layout_constraintEnd_toStartOf="@+id/six"
app:layout_constraintStart_toEndOf="@+id/four" />
<Button
android:id="@+id/six"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="getNum"
android:text="6"
app:layout_constraintStart_toStartOf="@+id/three"
app:layout_constraintTop_toBottomOf="@+id/add" />
<Button
android:id="@+id/seven"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:onClick="getNum"
android:text="7"
app:layout_constraintBaseline_toBaselineOf="@+id/eight"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/eight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="getNum"
android:text="8"
app:layout_constraintEnd_toStartOf="@+id/nine"
app:layout_constraintStart_toEndOf="@+id/seven"
app:layout_constraintTop_toBottomOf="@+id/ac" />
<Button
android:id="@+id/nine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="getNum"
android:text="9"
app:layout_constraintStart_toStartOf="@+id/six"
app:layout_constraintTop_toBottomOf="@+id/minus" />
<Button
android:id="@+id/count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:onClick="counter"
android:text="="
app:layout_constraintBaseline_toBaselineOf="@+id/six"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:onClick="getStr"
android:text="+"
app:layout_constraintBaseline_toBaselineOf="@+id/nine"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/ac"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:onClick="getStr"
android:text="AC"
app:layout_constraintBaseline_toBaselineOf="@+id/remove"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="48dp"
android:onClick="getStr"
android:text="/"
app:layout_constraintBottom_toTopOf="@+id/four"
app:layout_constraintEnd_toStartOf="@+id/multiply"
app:layout_constraintStart_toEndOf="@+id/ac" />
<Button
android:id="@+id/multiply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="getStr"
android:text="*"
app:layout_constraintStart_toStartOf="@+id/nine"
app:layout_constraintTop_toTopOf="@+id/remove" />
<Button
android:id="@+id/minus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:onClick="getStr"
android:text="-"
app:layout_constraintBaseline_toBaselineOf="@+id/multiply"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/four"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="getNum"
android:text="4"
app:layout_constraintBaseline_toBaselineOf="@+id/five"
app:layout_constraintStart_toStartOf="@+id/seven" />
</android.support.constraint.ConstraintLayout>
java代码:
//the result
public double result = 0;
//array for two numbers 数组存取运算符前后两个数字
public Double[] number = new Double[2];
//用于= 和 + 等string的初始化
public String str="haha";
//to set the number[]
public int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number[0]=(double)0;
number[1]=(double)0;
}
//realize ac 清空功能
public void realizeAc()
{
TextView textView = (TextView)findViewById(R.id.result);
textView.setText(""+0);
number[0]=(double)0;
number[1]=(double)0;
result = 0;
str="haha";
count=0;
}
//count the result 按=后
public void counter(View view)
{
switch(str)
{
case "ac":
number[0]=(double)0;
number[1]=(double)0;
result = 0;
str="haha";
count=0;
break;
case "multiply":
result = number[0]*number[1];
break;
case "minus":
result = number[0]-number[1];
break;
case "remove":
result = number[0]/number[1];
break;
case "add":
result = number[0]+number[1];
break;
default:
Toast.makeText(getApplicationContext(),"error",Toast.LENGTH_LONG).show();
result=0;
break;
}
TextView textView = (TextView) findViewById(R.id.result);
textView.setText(result+"");
}
//get the str 获取运算符
public void getStr(View view)
{
switch(view.getId())
{
case R.id.ac:
str="ac";
realizeAc();
break;
case R.id.multiply:
str="multiply";
break;
case R.id.minus:
str="minus";
break;
case R.id.add:
str="add";
break;
case R.id.remove:
str="remove";
break;
default:
break;
}
}
//get the num 获取数字
public void getNum(View view)
{
if(str!="haha")
{
count=1;//根据运算符是否为空,确定是哪个数字
}
switch(view.getId()) {
case R.id.one:
number[count] = number[count] * 10 + 1;
break;
case R.id.two:
number[count] = number[count] * 10 + 2;
break;
case R.id.three:
number[count] = number[count] * 10 + 3;
break;
case R.id.four:
number[count] = number[count] * 10 + 4;
break;
case R.id.five:
number[count] = number[count] * 10 + 5;
break;
case R.id.six:
number[count] = number[count] * 10 + 6;
break;
case R.id.seven:
number[count] = number[count] * 10 + 7;
break;
case R.id.eight:
number[count] = number[count] * 10 + 8;
break;
case R.id.nine:
number[count] = number[count] * 10 + 9;
break;
case R.id.zero:
number[count] = number[count] * 10 + 0;
break;
}
}
}