Create Native Calculator Android Application

Introduction

Android is one of the most popular operating systems for mobile. In this article, I will show you how to create a Native Calculator Android application using Android Studio.

Requirements

Steps to be followed

The following steps are required to create a native Calculator Android application using Android Studio and I have included the source code below.

Step 1

Open Android Studio and start a new Android Studio Project.

Android Application

Step 2

You can choose your application name and choose where your project is stored on the location. If you wish to use C++ for coding the project, mark the "Include C++ support", and click "Next" button.

Android Application

Now, select the version of Android and select the target Android devices.

Android Application

Step 3

Now, add the activity and click "Next" button.

Android Application

Add Activity name and click "Finish"Button.

Android Application 

Step 4

Go to activity_main.xml, This XML file contains the designing code for an Android app in the activity_main.xml.

Android Application

The XML code is given below.

  1. <LinearLayout  
  2.     xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:layout_margin="20dp">  
  7.    
  8.     <LinearLayout  
  9.         android:id="@+id/linearLayout1"  
  10.         android:layout_width="match_parent"  
  11.         android:layout_height="wrap_content"  
  12.         android:layout_margin="20dp">  
  13.    
  14.         <EditText  
  15.             android:id="@+id/editText1"  
  16.             android:layout_width="match_parent"  
  17.             android:layout_height="wrap_content"  
  18.             android:layout_weight="1"  
  19.             android:inputType="numberDecimal"  
  20.             android:textSize="20sp" />  
  21.    
  22.         <EditText  
  23.             android:id="@+id/editText2"  
  24.             android:layout_width="match_parent"  
  25.             android:layout_height="wrap_content"  
  26.             android:layout_weight="1"  
  27.             android:inputType="numberDecimal"  
  28.             android:textSize="20sp" />  
  29.    
  30.     </LinearLayout>  
  31.    
  32.     <LinearLayout  
  33.         android:id="@+id/linearLayout2"  
  34.         android:layout_width="match_parent"  
  35.         android:layout_height="wrap_content"  
  36.         android:layout_margin="20dp">  
  37.    
  38.         <Button  
  39.             android:id="@+id/Add"  
  40.             android:layout_width="match_parent"  
  41.             android:layout_height="wrap_content"  
  42.             android:layout_weight="1"  
  43.             android:text="+"  
  44.             android:textSize="30sp"/>  
  45.    
  46.         <Button  
  47.             android:id="@+id/Sub"  
  48.             android:layout_width="match_parent"  
  49.             android:layout_height="wrap_content"  
  50.             android:layout_weight="1"  
  51.             android:text="-"  
  52.             android:textSize="30sp"/>  
  53.    
  54.         <Button  
  55.             android:id="@+id/Mul"  
  56.             android:layout_width="match_parent"  
  57.             android:layout_height="wrap_content"  
  58.             android:layout_weight="1"  
  59.             android:text="*"  
  60.             android:textSize="30sp"/>  
  61.    
  62.         <Button  
  63.             android:id="@+id/Div"  
  64.             android:layout_width="match_parent"  
  65.             android:layout_height="wrap_content"  
  66.             android:layout_weight="1"  
  67.             android:text="/"  
  68.             android:textSize="30sp"/>  
  69.    
  70.     </LinearLayout>  
  71.    
  72.    
  73.    <TextView  
  74.         android:id="@+id/textView"  
  75.         android:layout_width="match_parent"  
  76.         android:layout_height="wrap_content"  
  77.         android:layout_marginTop="50dp"  
  78.         android:text="The Answer is"  
  79.         android:textSize="30sp"  
  80.         android:gravity="center"/>  
  81.    
  82. </LinearLayout>  

Step 5

Go to Main Activity.java, This Java program is the back-end language for Android. Add the following code.

  1. package com.example.hpworld.nativecalculator;  
  2. import android.os.Bundle;  
  3. import android.support.v7.app.AppCompatActivity;  
  4. import android.text.TextUtils;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7. import android.widget.Button;  
  8. import android.widget.EditText;  
  9. import android.widget.TextView;  
  10.    
  11. public class MainActivity extends AppCompatActivity implements OnClickListener  
  12. {  
  13.     //Defining the Views  
  14.     EditText Num1;  
  15.     EditText Num2;  
  16.     Button Add;  
  17.     Button Sub;  
  18.     Button Mul;  
  19.     Button Div;  
  20.     TextView Result;  
  21.    
  22.     @Override  
  23.     public void onCreate(Bundle savedInstanceState)  
  24.     {  
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.activity_main);  
  27.    
  28.         //Referring the Views  
  29.         Num1 = (EditText) findViewById(R.id.editText1);  
  30.         Num2 = (EditText) findViewById(R.id.editText2);  
  31.         Add = (Button) findViewById(R.id.Add);  
  32.         Sub = (Button) findViewById(R.id.Sub);  
  33.         Mul = (Button) findViewById(R.id.Mul);  
  34.         Div = (Button) findViewById(R.id.Div);  
  35.         Result = (TextView) findViewById(R.id.textView);  
  36.    
  37.         // set a listener  
  38.         Add.setOnClickListener(this);  
  39.         Sub.setOnClickListener(this);  
  40.         Mul.setOnClickListener(this);  
  41.         Div.setOnClickListener(this);  
  42.     }  
  43.        
  44.     @Override  
  45.     public void onClick (View v)  
  46.     {  
  47.            
  48.         float num1 = 0;  
  49.         float num2 = 0;  
  50.         float result = 0;  
  51.         String oper = "";  
  52.    
  53.         // check if the fields are empty  
  54.         if (TextUtils.isEmpty(Num1.getText().toString()) || TextUtils.isEmpty(Num2.getText().toString()))  
  55.                 return;  
  56.    
  57.         // read EditText and fill variables with numbers  
  58.         num1 = Float.parseFloat(Num1.getText().toString());  
  59.         num2 = Float.parseFloat(Num2.getText().toString());  
  60.    
  61.         // defines the button that has been clicked and performs the corresponding operation  
  62.         // write operation into oper, we will use it later for output  
  63.         switch (v.getId())   
  64.         {  
  65.             case R.id.Add:  
  66.                 oper = "+";  
  67.                 result = num1 + num2;  
  68.                 break;  
  69.             case R.id.Sub:  
  70.                 oper = "-";  
  71.                 result = num1 - num2;  
  72.                 break;  
  73.             case R.id.Mul:  
  74.                 oper = "*";  
  75.                 result = num1 * num2;  
  76.                 break;  
  77.             case R.id.Div:  
  78.                 oper = "/";  
  79.                 result = num1 / num2;  
  80.                 break;  
  81.             default:  
  82.                 break;  
  83.         }  
  84.         // form the output line  
  85.         Result.setText(num1 + " " + oper + " " + num2 + " = " + result);  
  86.     }  
  87. }  

Step 6

Now, either go to menu bar and click "Make project" or press ctrl+f9 to debug the error.

Android Application

Step 7

Then, click Run button or press shift+f10 to run the project. Select the "virtual machine" option and click OK.

Android Application

Conclusion

We have successfully created Calculator app for Android using Android Studio.

Android Application

Result

Addition Operation

Android Application

Subtraction Operation

Android Application

Multiplication Operation

Android Application

Division Operation

Android Application