<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg">
<TextView
android:id="@+id/txtResult"
android:layout_width="400dp"
android:layout_height="80dp"
android:layout_x="0dp"
android:layout_y="0dp"
android:background="#ffffffff"
android:text="0.0"
android:textColor="#ff333333"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="right"/>
<Button
android:id="@+id/btn1"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="15dp"
android:layout_y="85dp"
android:text="1"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click"/>
<Button
android:id="@+id/btn2"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="115dp"
android:layout_y="85dp"
android:text="2"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click" />
<Button
android:id="@+id/btn3"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="215dp"
android:layout_y="85dp"
android:text="3"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click" />
<Button
android:id="@+id/btnAdd"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="315dp"
android:layout_y="85dp"
android:text="+"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#FF6600"
android:onClick="add"/>
<Button
android:id="@+id/btn4"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="15dp"
android:layout_y="180dp"
android:text="4"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click"/>
<Button
android:id="@+id/btn5"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="115dp"
android:layout_y="180dp"
android:text="5"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click"/>
<Button
android:id="@+id/btn6"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="215dp"
android:layout_y="180dp"
android:text="6"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click" />
<Button
android:id="@+id/btnsub"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="315dp"
android:layout_y="180dp"
android:text="-"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#FF6600"
android:onClick="sub"/>
<Button
android:id="@+id/btn7"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="15dp"
android:layout_y="275dp"
android:text="7"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click" />
<Button
android:id="@+id/btn8"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="115dp"
android:layout_y="275dp"
android:text="8"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click" />
<Button
android:id="@+id/btn9"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="215dp"
android:layout_y="275dp"
android:text="9"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="digital_click" />
<Button
android:id="@+id/btnMul"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="315dp"
android:layout_y="275dp"
android:text="*"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#FF6600"
android:onClick="mul"/>
<Button
android:id="@+id/btn0"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="15dp"
android:layout_y="370dp"
android:text="0"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff" />
<Button
android:id="@+id/btnPoint"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="115dp"
android:layout_y="370dp"
android:text="."
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#ff5599ff"
android:onClick="point_click"/>
<Button
android:id="@+id/btnDiv"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="315dp"
android:layout_y="370dp"
android:text="/"
android:textSize="60dp"
android:textStyle="bold"
android:gravity="center"
android:background="#FF6600"
android:onClick="div"/>
<Button
android:id="@+id/btndel"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_x="15dp"
android:layout_y="465dp"
android:text="Back"
android:textSize="30dp"
android:textStyle="bold"
android:gravity="center"
android:background="#FF4433"
android:onClick="del"/>
<Button
android:id="@+id/btnequ"
android:layout_width="175dp"
android:layout_height="80dp"
android:layout_x="115dp"
android:layout_y="465dp"
android:text="="
android:textSize="60dp"
tools:layout_editor_absoluteX="179dp"
tools:layout_editor_absoluteY="404dp"
android:gravity="center"
android:background="#FF4433"
android:onClick="equ"/>
</AbsoluteLayout>
package com.example.calculator;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.text.NumberFormat;
public class MainActivity extends Activity {
double firstNum = 0;
char currentSign = '+';
StringBuffer currentNum = new StringBuffer();
boolean isFirstPoint = false;
TextView txtResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtResult = (TextView) findViewById(R.id.txtResult);
}
public void init() {
currentNum.delete(0, currentNum.length());
isFirstPoint = false;
}
public double stringToDouble() {
if (currentNum.length() == 0) {
return 0;
}
double result = Double.parseDouble(currentNum.toString());
return result;
}
public double calcu() {
double result = 0;
switch (currentSign) {
case '+':
result = firstNum + stringToDouble();
break;
case '-':
result = firstNum - stringToDouble();
break;
case '*':
result = firstNum * stringToDouble();
break;
case '/':
result = firstNum / stringToDouble();
break;
}
NumberFormat format = NumberFormat.getInstance();
format.setMaximumFractionDigits(2);
result = Double.parseDouble(format.format(result));
return result;
}
public void display(){
txtResult.setText(currentNum.toString());
}
public void digital_click(View view){
Button btnDigital = (Button)view;
char text = btnDigital.getText().charAt(0);
currentNum.append(text);
display();
}
public void add(View view){
double result = calcu();
txtResult.setText(String.valueOf(result));
firstNum=result;
currentSign='+';
init();
}
public void sub(View view){
double result = calcu();
txtResult.setText(String.valueOf(result));
firstNum=result;
currentSign='-';
init();
}
public void mul(View view){
double result = calcu();
txtResult.setText(String.valueOf(result));
firstNum=result;
currentSign='*';
init();
}
public void div(View view){
double result = calcu();
txtResult.setText(String.valueOf(result));
firstNum=result;
currentSign='/';
init();
}
public void equ(View view){
double result = calcu();
txtResult.setText(String.valueOf(result));
firstNum=result;
currentSign='+';
init();
}
public void point_click(View view){
if(isFirstPoint){
return;
}
if(currentNum.length()==0){
return;
}
Button btnPoint=(Button)view;
char text = btnPoint.getText().charAt(0);
isFirstPoint=true;
display();
}
public void del(View view){
if(currentNum.length()>=1){
currentNum.delete(currentNum.length()-1,currentNum.length());
}
if(currentNum.length()==0){
init();
display();
}
txtResult.setText(currentNum);
}
}