0% found this document useful (0 votes)
25 views

Lab File Mobile Application

The document describes developing a native calculator app for Android using Android Studio. It includes the code for the layout file (activity_main.xml) which contains buttons and text views to display input and results. The MainActivity code handles button clicks to perform calculations and display outputs for addition, subtraction, multiplication and division. When a numeric button is clicked, the number is appended to the input and result text views. When an operator button is clicked, any pending calculation is performed before updating the input with the selected operator and clearing the result.

Uploaded by

salonia.it.21
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Lab File Mobile Application

The document describes developing a native calculator app for Android using Android Studio. It includes the code for the layout file (activity_main.xml) which contains buttons and text views to display input and results. The MainActivity code handles button clicks to perform calculations and display outputs for addition, subtraction, multiplication and division. When a numeric button is clicked, the number is appended to the input and result text views. When an operator button is clicked, any pending calculation is performed before updating the input with the selected operator and clearing the result.

Uploaded by

salonia.it.21
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Lab-4

AIM:
Develop a native calculator using Android Studio having controls like Button, TextView, EditText for
designing a calculator having basic functionality like Addition, Subtraction, Multiplication, and
Division.

CODE:

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/textViewInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_margin="16dp"
android:textSize="24sp"
android:gravity="end"
android:textColor="@android:color/black"
android:text="0"/>

<TextView
android:id="@+id/textViewResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textViewInput"
android:layout_margin="16dp"
android:textSize="30sp"
android:gravity="end"
android:textColor="@android:color/black"
android:text="0"/>

<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textViewResult"
android:layout_marginTop="16dp"
android:columnCount="4">

<!-- Row 1 -->


<Button
android:layout_width="0dp"
android:id="@+id/button7"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="7"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/button8"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="8"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/button9"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="9"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/division"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="/"
android:onClick="onOperatorClick" />

<!-- Row 2 -->


<Button
android:layout_width="0dp"
android:id="@+id/button4"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="4"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/button5"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="5"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/button6"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="6"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/multiplication"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="*"
android:onClick="onOperatorClick" />

<!-- Row 3 -->


<Button
android:layout_width="0dp"
android:id="@+id/button1"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="1"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/button2"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="2"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/button3"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="3"
android:onClick="onDigitClick" />

<Button
android:layout_width="0dp"
android:id="@+id/subtraction"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="-"
android:onClick="onOperatorClick" />

<!-- Row 4 -->


<Button
android:layout_width="0dp"
android:id="@+id/button0"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="0"
android:onClick="onDigitClick" />
<Button
android:layout_width="0dp"
android:id="@+id/buttondot"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="."
android:onClick="onDecimalClick" />

<Button
android:layout_width="0dp"
android:id="@+id/addition"
android:layout_height="wrap_content"
android:layout_columnSpan="2"
android:layout_columnWeight="2"
android:text="+"
android:onClick="onOperatorClick" />

<Button
android:layout_width="0dp"
android:id="@+id/equal"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:text="="
android:onClick="onEqualClick" />

<!-- Clear and Delete buttons -->


<Button
android:layout_width="0dp"
android:id="@+id/clear"
android:layout_height="wrap_content"
android:layout_columnSpan="2"
android:layout_columnWeight="2"
android:text="Clear"
android:onClick="onClearClick" />

</GridLayout>

</RelativeLayout>
MainActivity.xml
package com.example.calculator;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {

private TextView resultTextView;


private TextView inputTextView; // New TextView for input
private Button addition, subtraction, multiplication, division, equal, clear;
private Button[] numberButtons = new Button[10];
private double valueOne = Double.NaN, valueTwo;
private final char ADDITION = '+', SUBTRACTION = '-', MULTIPLICATION = '*', DIVISION
= '/';
private char ACTION;

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

setupUIViews();

for (int i = 0; i < 10; i++) {


int finalI = i;
numberButtons[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Append input value to both inputTextView and resultTextView
inputTextView.append(String.valueOf(finalI));
resultTextView.append(String.valueOf(finalI));
}
});
}

addition.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = ADDITION;
// Update inputTextView for the action
inputTextView.append(" + ");
resultTextView.setText(null);
}
});
subtraction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = SUBTRACTION;
// Update inputTextView for the action
inputTextView.append(" - ");
resultTextView.setText(null);
}
});

multiplication.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = MULTIPLICATION;
// Update inputTextView for the action
inputTextView.append(" * ");
resultTextView.setText(null);
}
});

division.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = DIVISION;
// Update inputTextView for the action
inputTextView.append(" / ");
resultTextView.setText(null);
}
});

equal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
compute();
ACTION = '0';
}
});

clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
valueOne = Double.NaN;
valueTwo = Double.NaN;
resultTextView.setText(null);
inputTextView.setText(null);
}
});
}

private void setupUIViews() {


resultTextView = findViewById(R.id.textViewResult);
inputTextView = findViewById(R.id.textViewInput);
addition = findViewById(R.id.addition);
subtraction = findViewById(R.id.subtraction);
multiplication = findViewById(R.id.multiplication);
division = findViewById(R.id.division);
equal = findViewById(R.id.equal);
clear = findViewById(R.id.clear);
// Initialize number buttons
for (int i = 0; i < 10; i++) {
String buttonID = "button" + i;
int resID = getResources().getIdentifier(buttonID, "id", getPackageName());
numberButtons[i] = findViewById(resID);
}
}

private void compute() {


if (!Double.isNaN(valueOne)) {
valueTwo = Double.parseDouble(resultTextView.getText().toString());
switch (ACTION) {
case ADDITION:
valueOne = valueOne + valueTwo;
break;
case SUBTRACTION:
valueOne = valueOne - valueTwo;
break;
case MULTIPLICATION:
valueOne = valueOne * valueTwo;
break;
case DIVISION:
valueOne = valueOne / valueTwo;
break;
}
} else {
try {
valueOne = Double.parseDouble(resultTextView.getText().toString());
} catch (Exception e) {
}
}
resultTextView.setText(String.valueOf(valueOne));
}
}
Output:

Fig 4.1 : Calculator

You might also like