Android Calculator App

XML Layout Code (activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">

    <!-- Input Fields -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginBottom="10dp">

        <EditText
            android:id="@+id/editText1"
            android:layout_width="0dp"
            android:layout_height="48dp"
            android:layout_weight="1"
            android:hint="Enter first number"
            android:inputType="numberDecimal"
            android:textSize="18sp" />

        <EditText
            android:id="@+id/editText2"
            android:layout_width="0dp"
            android:layout_height="48dp"
            android:layout_weight="1"
            android:hint="Enter second number"
            android:inputType="numberDecimal"
            android:textSize="18sp"/>
    </LinearLayout>

    <!-- Buttons for Operations -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginBottom="20dp">

        <Button
            android:id="@+id/Add"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="+"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/Sub"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="-"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/Mul"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="*"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/Div"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="/"
            android:textSize="24sp"/>
    </LinearLayout>

    <!-- Result Display -->
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Answer is"
        android:textSize="24sp"
        android:textStyle="bold"
        android:gravity="center"/>
</LinearLayout>
        

Java Code (MainActivity.java):

package com.example.lab3;

import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    // Defining UI Elements
    EditText Num1, Num2;
    Button Add, Sub, Mul, Div;
    TextView Result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Referring UI Elements
        Num1 = findViewById(R.id.editText1);
        Num2 = findViewById(R.id.editText2);
        Add = findViewById(R.id.Add);
        Sub = findViewById(R.id.Sub);
        Mul = findViewById(R.id.Mul);
        Div = findViewById(R.id.Div);
        Result = findViewById(R.id.textView);

        // Setting Click Listeners
        Add.setOnClickListener(operationClickListener);
        Sub.setOnClickListener(operationClickListener);
        Mul.setOnClickListener(operationClickListener);
        Div.setOnClickListener(operationClickListener);
    }

    private final View.OnClickListener operationClickListener = new View.OnClickListener() {
        @SuppressLint("SetTextI18n")
        @Override
        public void onClick(View v) {
            // Validate input
            if (TextUtils.isEmpty(Num1.getText()) || TextUtils.isEmpty(Num2.getText())) {
                Result.setText("Please enter numbers!");
                return;
            }

            float num1 = Float.parseFloat(Num1.getText().toString());
            float num2 = Float.parseFloat(Num2.getText().toString());
            float result = 0;
            String oper = "";

            // Perform operation based on button clicked
            if (v.getId() == R.id.Add) {
                oper = "+";
                result = num1 + num2;
            } else if (v.getId() == R.id.Sub) {
                oper = "-";
                result = num1 - num2;
            } else if (v.getId() == R.id.Mul) {
                oper = "*";
                result = num1 * num2;
            } else if (v.getId() == R.id.Div) {
                if (num2 == 0) {
                    Result.setText("Error: Division by zero!");
                    return;
                }
                oper = "/";
                result = num1 / num2;
            }

            // Display result
            Result.setText(num1 + " " + oper + " " + num2 + " = " + result);
        }
    };
}