mainActivity
package com.example.administrator.calculater;
import android.renderscript.Double2;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends Activity implements View.OnClickListener
{
//声明控件
Button btn1=null;
Button btn2=null;
Button btn3=null;
Button btn4=null;
Button btn5=null;
Button btn6=null;
Button btn7=null;
Button btn8=null;
Button btn9=null;
Button btn0=null;
Button btnAdd=null;
Button btnSub=null;
Button btnMul=null;
Button btnDiv=null;
Button btnEql=null;
Button btnCE=null;
Button btnPoint=null;
Button btnBack=null;
TextView tvResult=null;
//声明操作数
double num1=0, num2=0;
//声明结果变量
double result=0;
//声明操作符
int op=0;
//判断是否点击等号
boolean isEqual=false;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
//从布局文件获取控件
btn0=(Button)findViewById(R.id.button0);
btn1=(Button)findViewById(R.id.button1);
btn2=(Button)findViewById(R.id.button2);
btn3=(Button)findViewById(R.id.button3);
btn4=(Button)findViewById(R.id.button4);
btn5=(Button)findViewById(R.id.button5);
btn6=(Button)findViewById(R.id.button6);
btn7=(Button)findViewById(R.id.button7);
btn8=(Button)findViewById(R.id.button8);
btn9=(Button)findViewById(R.id.button9);
btnAdd=(Button)findViewById(R.id.buttonAdd);
btnBack=(Button)findViewById(R.id.buttonBackspace);
btnCE=(Button)findViewById(R.id.buttonCE);
btnDiv=(Button)findViewById(R.id.buttonDiv);
btnMul=(Button)findViewById(R.id.buttonMul);
btnEql=(Button)findViewById(R.id.buttonEql);
btnPoint=(Button)findViewById(R.id.buttonPoint);
btnSub=(Button)findViewById(R.id.buttonSub);
tvResult=(TextView)findViewById(R.id.editText);//editview是textview的一种
//添加监听
btn0.setOnClickListener(this);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
btnAdd.setOnClickListener(this);
btnBack.setOnClickListener(this);
btnSub.setOnClickListener(this);
btnMul.setOnClickListener(this);
btnDiv.setOnClickListener(this);
btnPoint.setOnClickListener(this);
btnEql.setOnClickListener(this);
btnCE.setOnClickListener(this);
}
@Override//这是个重载函数,就是说,他已经封装好了
//
public void onClick(View view)
{
switch (view.getId())
{
//我问你is
case R.id.button0:
//要判断一下是不是第一个操作数,如果是第一个操作数,就是已经嗯过=号了,就把变成空的,重新开始,这个时候已经嗯过等号了,
if(isEqual)//isEqual是一个标志,
{
tvResult.setText(null);
isEqual=false;
}
String mystring0=tvResult.getText().toString();
mystring0+="0";
tvResult.setText(mystring0);
break;
case R.id.button1:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring1=tvResult.getText().toString();
mystring1+="1";
tvResult.setText(mystring1);
break;
case R.id.button2:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring2=tvResult.getText().toString();
mystring2+="2";
tvResult.setText(mystring2);
break;
case R.id.button3:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring3=tvResult.getText().toString();
mystring3+="3";
tvResult.setText(mystring3);
break;
case R.id.button4:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring4=tvResult.getText().toString();
mystring4+="4";
tvResult.setText(mystring4);
break;
case R.id.button5:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring5=tvResult.getText().toString();
mystring5+="5";
tvResult.setText(mystring5);
break;
case R.id.button6:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring6=tvResult.getText().toString();
mystring6+="6";
tvResult.setText(mystring6);
break;
//问你个问题。首先,你点击后怎么显示到 关键是 你怎么职的你点击了1.。。。。
case R.id.button7:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring7=tvResult.getText().toString();
mystring7+="7";
tvResult.setText(mystring7);
break;
case R.id.button8:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring8=tvResult.getText().toString();
mystring8+="8";
tvResult.setText(mystring8);
break;
case R.id.button9:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystring9=tvResult.getText().toString();
mystring9+="9";
tvResult.setText(mystring9);
break;
//other button
case R.id.buttonPoint:
if(isEqual)
{
tvResult.setText(null);
isEqual=false;
}
String mystringPoint=tvResult.getText().toString();
mystringPoint+=".";
tvResult.setText(mystringPoint);
break;
case R.id.buttonBackspace:
String strBack=tvResult.getText().toString();
try
{
tvResult.setText(strBack.substring(0,strBack.length()-1));
//哭泣泣。。。这个不是java语法吗欸 看来我又要去恶补java了= =,不用,我理解的 android 是跟java不一样的一个东西,他很多事已经封装好的,不需要知道原理,只知道怎么用就行,上面这句,
//应该也没那么难,多设几个变量,就看起来没那么复杂了。我意思是你看 substr这个替换的我就不记得怎么贫血了- 拼写欸,emmm。。。我觉得都记住的话应该
//。
}
catch (Exception e)
{
tvResult.setText("");
}
break;
case R.id.buttonCE:
tvResult.setText(null);
break;
case R.id.buttonAdd://qq语音方便不。。。方便= =
//那我打你qq电话啊
String stringAdd=tvResult.getText().toString();
if(stringAdd.equals(null))
return;
num1= Double.valueOf(stringAdd);
op=1;
tvResult.setText("");
isEqual=false;
//?
break;
case R.id.buttonSub:
String stringSub=tvResult.getText().toString();
if(stringSub.equals(null))
return;
num1= Double.valueOf(stringSub);
op=2;
tvResult.setText("");
isEqual=false;
break;
case R.id.buttonMul:
String stringMul=tvResult.getText().toString();
if(stringMul.equals(null))
return;
num1= Double.valueOf(stringMul);
op=3;
tvResult.setText("");
isEqual=false;
break;
case R.id.buttonDiv:
String stringDiv=tvResult.getText().toString();
if(stringDiv.equals(null))
return;
num1= Double.valueOf(stringDiv);
op=4;
tvResult.setText("");
isEqual=false;
break;
case R.id.buttonEql:
String stringEqual=tvResult.getText().toString();
if (stringEqual.equals(null))
return;
num2=Double.valueOf(stringEqual);
tvResult.setText(null);
switch (op)
{
case 0:
result=num2;
break;
case 1:
result=num1+num2;
break;
case 2:
result=num1-num2;
break;
case 3:
result=num1*num2;
break;
case 4:
if (num2==0)
{
tvResult.setText("ERROR");
return;
}
result=num1/num2;
break;
}
tvResult.setText(String.valueOf(result));
isEqual=true;
break;
default:
break;
}
}
}
layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_gravity="center_horizontal"
android:textSize="40px"
android:text="请输入:" />
<EditText
android:id="@+id/editText"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:layout_gravity="center_horizontal"
android:text="" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:weightSum="1">
<Button
android:id="@+id/buttonDiv"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="/" />
<Button
android:id="@+id/buttonMul"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="*" />
<Button
android:id="@+id/buttonBackspace"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="Backspace" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/button1"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="1" />
<Button
android:id="@+id/button2"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="2" />
<Button
android:id="@+id/button3"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="3" />
<Button
android:id="@+id/buttonSub"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="-" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/button4"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="4" />
<Button
android:id="@+id/button5"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="5" />
<Button
android:id="@+id/button6"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="6" />
<Button
android:id="@+id/buttonAdd"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="+" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/button7"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="7" />
<Button
android:id="@+id/button8"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="8" />
<Button
android:id="@+id/button9"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="9" />
<Button
android:id="@+id/buttonEql"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="=" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/button0"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="0" />
<Button
android:id="@+id/buttonPoint"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="." />
<Button
android:id="@+id/buttonCE"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="CE" />
</LinearLayout>
</LinearLayout>
</LinearLayout>