Build Native Calculator App in Android Studio

Build Native Calculator Application in Android Studio:

Download Android Studio from the link given blow according to your operating system Windows, Mac, Linux, Chrome OS etc.

Link:​​ https://developer.android.com/studio

More downloads are available here.​​ 

Link:​​ https://developer.android.com/studio/archive

 

After installation of Android Studio

Create File -> New Project->Empty Project->Native Calc

2 files are automatically activity_main.xml and MainActivity.java

XML File:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:tools="http://schemas.android.com/tools"

   android:id="@+id/activity_main"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:paddingBottom="@dimen/activity_vertical_margin"

   android:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin"

   tools:context="com.example.student.nativecalc.MainActivity">

   <EditText

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:inputType="textPersonName"

       android:ems="10"

       android:layout_alignParentTop="true"

       android:layout_alignParentStart="true"

       android:id="@+id/disp" />

   <Button

       android:text="0"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/zero"

       android:layout_alignBaseline="@+id/cancel"

       android:layout_alignBottom="@+id/cancel"

       android:layout_alignStart="@+id/two" />

   <Button

       android:text="/"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/div"

       android:layout_alignBottom="@+id/nine"

       android:layout_alignParentEnd="true"

       android:layout_alignTop="@+id/nine" />

   <Button

       android:text="6"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/six"

       android:layout_alignBaseline="@+id/four"

       android:layout_alignBottom="@+id/four"

       android:layout_alignStart="@+id/three" />

   <Button

       android:text="2"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/two"

       android:layout_marginEnd="35dp"

       android:layout_toStartOf="@+id/three"

       android:layout_alignTop="@+id/one"

       android:layout_alignBottom="@+id/one" />

   <Button

       android:text="*"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/mul"

       android:layout_alignBaseline="@+id/one"

       android:layout_alignBottom="@+id/one"

       android:layout_alignParentEnd="true" />

   <Button

       android:text="3"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/three"

       android:layout_alignStart="@+id/nine"

       android:layout_alignBottom="@+id/two" />

   <Button

       android:text="9"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/nine"

       android:layout_alignBaseline="@+id/seven"

       android:layout_alignBottom="@+id/seven"

       android:layout_toStartOf="@+id/div"

       android:layout_marginEnd="22dp" />

   <Button

       android:text="4"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/four"

       android:layout_below="@+id/div"

       android:layout_alignParentStart="true"

       android:layout_marginTop="40dp" />

   <Button

       android:text="1"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/one"

       android:layout_below="@+id/sub"

       android:layout_alignParentStart="true"

       android:layout_marginTop="26dp" />

   <Button

       android:text="C"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/cancel"

       android:layout_marginBottom="35dp"

       android:layout_alignParentBottom="true"

       android:layout_alignParentStart="true" />

   <Button

       android:text="+"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/add"

       android:layout_alignBaseline="@+id/cancel"

       android:layout_alignBottom="@+id/cancel"

       android:layout_alignParentEnd="true" />

   <Button

       android:text="="

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/equal"

       android:layout_alignBaseline="@+id/cancel"

       android:layout_alignBottom="@+id/cancel"

       android:layout_alignStart="@+id/three" />

   <Button

       android:text="-"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/sub"

       android:layout_alignBaseline="@+id/six"

       android:layout_alignBottom="@+id/six"

       android:layout_alignParentEnd="true" />

   <Button

       android:text="5"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/five"

       android:layout_alignBaseline="@+id/four"

       android:layout_alignBottom="@+id/four"

       android:layout_alignStart="@+id/two" />

   <Button

       android:text="7"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/seven"

       android:layout_marginTop="63dp"

       android:layout_below="@+id/disp"

       android:layout_alignParentStart="true" />

   <Button

       android:text="8"

       android:layout_width="65dp"

       android:layout_height="55dp"

       android:id="@+id/eight"

       android:layout_alignBaseline="@+id/seven"

       android:layout_alignBottom="@+id/seven"

       android:layout_alignStart="@+id/five" />

</RelativeLayout>

Backend Java File:MainActivity.java

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.Editable;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

   Button onetwothreefourfivesixseveneightninezeroaddsubmuldivcancelequal;

   EditText disp;

   int op1;

   int op2;

   String optr;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

       one = (Button) findViewById(R.id.one);

       two = (Button) findViewById(R.id.two);

       three = (Button) findViewById(R.id.three);

       four = (Button)​​ findViewById(R.id.four);

       five = (Button) findViewById(R.id.five);

       six = (Button) findViewById(R.id.six);

       seven = (Button) findViewById(R.id.seven);

       eight = (Button) findViewById(R.id.eight);

       nine = (Button)​​ findViewById(R.id.nine);

       zero = (Button) findViewById(R.id.zero);

       add = (Button) findViewById(R.id.add);

       sub = (Button) findViewById(R.id.sub);

       mul = (Button) findViewById(R.id.mul);

       div = (Button) findViewById(R.id.div);

       cancel = (Button) findViewById(R.id.cancel);

       equal = (Button) findViewById(R.id.equal);

       disp = (EditText) findViewById(R.id.disp);

       try{

           one.setOnClickListener(this);

           two.setOnClickListener(this);

           three.setOnClickListener(this);

           four.setOnClickListener(this);

           five.setOnClickListener(this);

           six.setOnClickListener(this);

           seven.setOnClickListener(this);

           eight.setOnClickListener(this);

           nine.setOnClickListener(this);

           zero.setOnClickListener(this);

           cancel.setOnClickListener(this);

           add.setOnClickListener(this);

           sub.setOnClickListener(this);

           mul.setOnClickListener(this);

           div.setOnClickListener(this);

           equal.setOnClickListener(this);

       }

       catch(Exception e){

       }

   }

   public void operation(){

       if(optr.equals("+")){

           op2 = Integer.parseInt(disp.getText().toString());

           disp.setText("");

           op1 = op1 + op2;

           disp.setText("Result : " + Integer.toString(op1));

       }

       else if(optr.equals("-")){

           op2 = Integer.parseInt(disp.getText().toString());

           disp.setText("");

           op1 = op1 - op2;

           disp.setText("Result : " + Integer.toString(op1));

       }

       else if(optr.equals("*")){

           op2 = Integer.parseInt(disp.getText().toString());

           disp.setText("");

           op1 = op1 * op2;

           disp.setText("Result : " + Integer.toString(op1));

       }

       else if(optr.equals("/")){

           op2 = Integer.parseInt(disp.getText().toString());

           disp.setText("");

           op1 = op1 / op2;

           disp.setText("Result : " + Integer.toString(op1));

       }

   }

   @Override

   public void onClick(View v) {

       Editable str = disp.getText();

       switch(v.getId()){

           case R.id.one:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(one.getText());

               disp.setText(str);

               break;

           case R.id.two:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(two.getText());

               disp.setText(str);

               break;

           case R.id.three:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(three.getText());

               disp.setText(str);

               break;

           case R.id.four:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(four.getText());

               disp.setText(str);

               break;

           case R.id.five:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(five.getText());

               disp.setText(str);

               break;

           case R.id.six:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(six.getText());

               disp.setText(str);

               break;

           case R.id.seven:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(seven.getText());

               disp.setText(str);

               break;

           case R.id.eight:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(eight.getText());

               disp.setText(str);

               break;

           case R.id.nine:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(nine.getText());

               disp.setText(str);

               break;

           case R.id.zero:

               if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               str = str.append(zero.getText());

               disp.setText(str);

               break;

           case R.id.cancel:

               op1 = 0;

               op2 = 0;

               disp.setText("");

               disp.setHint("Perform​​ Operation :)");

               break;

           case R.id.add:

               optr = "+";

               if(op1 == 0){

                   op1 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

               }

               else if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               else{

                   op2 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

                   op1 = op1 + op2;

                   disp.setText("Result : " + Integer.toString(op1));

               }

               break;

           case R.id.sub:

               optr = "-";

               if(op1 == 0){

                   op1 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

               }

               else if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               else{

                   op2 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

                   op1 = op1 - op2;

                   disp.setText("Result : " + Integer.toString(op1));

               }

               break;

           case R.id.mul:

               optr = "*";

               if(op1 == 0){

                   op1 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

               }

               else if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               else{

                   op2 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

                   op1 = op1 * op2;

                   disp.setText("Result : " + Integer.toString(op1));

               }

               break;

           case R.id.div:

               optr = "/";

               if(op1 == 0){

                   op1 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

               }

               else if(op2 != 0){

                   op2 = 0;

                   disp.setText("");

               }

               else{

                   op2 = Integer.parseInt(disp.getText().toString());

                   disp.setText("");

                   op1 = op1 / op2;

                   disp.setText("Result : " + Integer.toString(op1));

               }

               break;

           case R.id.equal:

                       operation();

                       break;

       }

   }

}

V0wH4X8nJybm5uW632+pBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEK3+BeWdhf6niL6fAAAAAElFTkSuQmCC - Build Native Calculator App in Android Studio

Ec2pNmjRJTU09zQvX1tbm5eVhR7hRk2V55MiRN9xwAz6UDAAAHFErmQAAAChJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQjf4fpdMWnYVC0K0AAAAASUVORK5CYII= - Build Native Calculator App in Android Studio

j+3I7u2AjmKTAAAAABJRU5ErkJggg== - Build Native Calculator App in Android Studio