0% found this document useful (0 votes)
6 views11 pages

Program 3

The document outlines the development of a standard calculator application for basic arithmetic operations (addition, subtraction, multiplication, and division) using Android's XML layout and Java code. It includes the XML layout structure with two EditText fields for input, a TextView for displaying results, and buttons for each operation. The Java code implements the logic for performing calculations and handling user input, including error handling for empty inputs and division by zero.

Uploaded by

shivgond419
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views11 pages

Program 3

The document outlines the development of a standard calculator application for basic arithmetic operations (addition, subtraction, multiplication, and division) using Android's XML layout and Java code. It includes the XML layout structure with two EditText fields for input, a TextView for displaying results, and buttons for each operation. The Java code implements the logic for performing calculations and handling user input, including error handling for empty inputs and division by zero.

Uploaded by

shivgond419
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Program 3:

Develop standard calculator application to perform


basic calculations like addition, subtraction,
multiplication and division using 2 EditText and 1
TextView for displaying result.
XML:

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

<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

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

android:id="@+id/main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="15dp"

tools:context=".MainActivity">

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:autofillHints="Calc"

android:text="@string/the_great_calculator_app"

android:textSize="34sp"

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.023" />

<EditText

android:id="@+id/num1"

android:layout_width="match_parent"

android:layout_height="48dp"

android:layout_marginBottom="484dp"

android:ems="10"

android:hint="@string/enter_1st_number"

android:inputType="numberDecimal"

android:textAlignment="center"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.0"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/result" />

<EditText

android:id="@+id/num2"

android:layout_width="match_parent"

android:layout_height="48dp"

android:layout_marginBottom="444dp"

android:ems="10"
android:hint="@string/enter_2nd_number"

android:inputType="numberDecimal"

android:textAlignment="center"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.0"

app:layout_constraintStart_toStartOf="parent" />

<TextView

android:id="@+id/result"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="@string/result"

android:textAlignment="center"

android:textSize="34sp"

app:layout_constraintBottom_toTopOf="@+id/num2"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.0"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/textView2"

app:layout_constraintVertical_bias="0.315" />

<Button

android:id="@+id/btnSub"

android:layout_width="92dp"

android:layout_height="90dp"
android:layout_marginTop="31dp"

android:layout_marginBottom="300dp"

android:text="@string/sub"

android:textSize="40sp"

app:cornerRadius="5dp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toStartOf="@+id/btnMul"

app:layout_constraintStart_toEndOf="@+id/btnAdd"

app:layout_constraintTop_toBottomOf="@+id/num1"

app:layout_constraintVertical_bias="1.0" />

<Button

android:id="@+id/btnDiv"

android:layout_width="92dp"

android:layout_height="90dp"

android:layout_marginTop="31dp"

android:layout_marginBottom="300dp"

android:text="@string/div"

android:textSize="40sp"

app:cornerRadius="5dp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toEndOf="@+id/btnMul"

app:layout_constraintTop_toBottomOf="@+id/num1"

app:layout_constraintVertical_bias="1.0" />
<Button

android:id="@+id/btnAdd"

android:layout_width="92dp"

android:layout_height="90dp"

android:layout_marginTop="30dp"

android:layout_marginBottom="300dp"

android:text="@string/add"

android:textSize="40sp"

app:cornerRadius="5dp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toStartOf="@+id/btnSub"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/num1"

app:layout_constraintVertical_bias="1.0" />

<Button

android:id="@+id/btnMul"

android:layout_width="92dp"

android:layout_height="90dp"

android:layout_marginTop="31dp"

android:layout_marginBottom="300dp"

android:text="@string/x"

android:textSize="40sp"

app:cornerRadius="5dp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toStartOf="@+id/btnDiv"
app:layout_constraintStart_toEndOf="@+id/btnSub"

app:layout_constraintTop_toBottomOf="@+id/num1"

app:layout_constraintVertical_bias="1.0" />

<TextView

android:id="@+id/textView"

android:layout_width="105dp"

android:layout_height="96dp"

android:layout_marginStart="162dp"

android:layout_marginTop="88dp"

android:layout_marginEnd="176dp"

android:layout_marginBottom="208dp"

android:text="TextView"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/btnSub" />

</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java

package com.example.lab3;

import android.os.Bundle;

import android.view.WindowManager;

import android.widget.*;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

EditText num1, num2;

TextView result;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

num1 = findViewById(R.id.num1);

num2 = findViewById(R.id.num2);

result = findViewById(R.id.result);

num1.requestFocus();

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_A
LWAYS_VISIBLE);
findViewById(R.id.btnAdd).setOnClickListener(v -> calculate('+'));

findViewById(R.id.btnSub).setOnClickListener(v -> calculate('-'));

findViewById(R.id.btnMul).setOnClickListener(v -> calculate('*'));

findViewById(R.id.btnDiv).setOnClickListener(v -> calculate('/'));

private void calculate(char op) {

String s1 = num1.getText().toString().trim();

String s2 = num2.getText().toString().trim();

if (s1.isEmpty() || s2.isEmpty()) {

Toast.makeText(this, "Please enter both numbers", Toast.LENGTH_SHORT).show();

return;

double a = Double.parseDouble(s1);

double b = Double.parseDouble(s2);

double res = 0;

switch (op) {

case '+': res = a + b; break;

case '-': res = a - b; break;

case '*': res = a * b; break;

case '/':

if (b == 0) {

Toast.makeText(this, "Cannot divide by zero", Toast.LENGTH_SHORT).show();


return;

res = a / b;

break;

result.setText(String.valueOf(res));

}
A compact version of the same java code written above, But its complex to
understand. (Not recommended for exams)

package com.example.lab3;

import android.os.Bundle;

import android.view.WindowManager;

import android.widget.*;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

EditText n1,n2; TextView r;

public void onCreate(Bundle b) {

super.onCreate(b); setContentView(R.layout.activity_main);

n1 = findViewById(R.id.num1); n2 = findViewById(R.id.num2); r =
findViewById(R.id.result);

n1.requestFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALW
AYS_VISIBLE);

findViewById(R.id.btnAdd).setOnClickListener(v -> c('+'));

findViewById(R.id.btnSub).setOnClickListener(v -> c('-'));

findViewById(R.id.btnMul).setOnClickListener(v -> c('*'));

findViewById(R.id.btnDiv).setOnClickListener(v -> c('/'));

void c(char o){


String a=n1.getText().toString(),b=n2.getText().toString();

if(a.isEmpty()||b.isEmpty()){Toast.makeText(this,"Please enter both


numbers",Toast.LENGTH_SHORT).show();return;}

double x=Double.parseDouble(a),y=Double.parseDouble(b),z=0;

if(o=='+')z=x+y;else if(o=='-')z=x-y;else if(o=='*')z=x*y;

else if(o=='/'){if(y==0){Toast.makeText(this,"Cannot divide by


zero",Toast.LENGTH_SHORT).show();return;}z=x/y;}

r.setText(""+z);

You might also like