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);
}
};
}