MAINACTIVITY.
JAVA
package [Link].practical12;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class MainActivity extends AppCompatActivity {
TextView txtResult;
double firstNumber = 0;
String operator = "";
boolean isNewInput = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
txtResult = findViewById([Link]);
}
// Called when digit buttons (0–9) are clicked
public void digitClick(View view) {
Button btn = (Button) view;
if (isNewInput) {
[Link]([Link]().toString());
isNewInput = false;
} else {
[Link]([Link]().toString());
}
}
// Called when operator buttons (+, -, *, /) are clicked
public void operatorClick(View view) {
Button btn = (Button) view;
firstNumber = [Link]([Link]().toString());
operator = [Link]().toString();
isNewInput = true;
}
// Called when = button is clicked
public void equalClick(View view) {
double secondNumber = [Link]([Link]().toString());
double result = 0;
switch (operator) {
case "+":
result = firstNumber + secondNumber;
break;
case "-":
result = firstNumber - secondNumber;
break;
case "*":
result = firstNumber * secondNumber;
break;
case "/":
if (secondNumber != 0) {
result = firstNumber / secondNumber;
} else {
[Link]("Error");
return;
}
break;
}
[Link]([Link](result));
isNewInput = true;
}
// Called when Clear (C) button is clicked
public void clearClick(View view) {
[Link]("0");
firstNumber = 0;
operator = "";
isNewInput = true;
}
}
ACTIVITY_MAIN.XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<!-- Display Result -->
<TextView
android:id="@+id/txtResult"
android:layout_width="match_parent"
android:layout_height="80dp"
android:text="0"
android:textSize="28sp"
android:gravity="end|center_vertical"
android:background="#008B8B"
android:padding="16dp" />
<!-- Calculator Buttons -->
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="4"
android:rowCount="5"
android:layout_marginTop="16dp">
<Button android:text="7" android:onClick="digitClick"/>
<Button android:text="8" android:onClick="digitClick"/>
<Button android:text="9" android:onClick="digitClick"/>
<Button android:text="/" android:onClick="operatorClick"/>
<Button android:text="4" android:onClick="digitClick"/>
<Button android:text="5" android:onClick="digitClick"/>
<Button android:text="6" android:onClick="digitClick"/>
<Button android:text="*" android:onClick="operatorClick"/>
<Button android:text="1" android:onClick="digitClick"/>
<Button android:text="2" android:onClick="digitClick"/>
<Button android:text="3" android:onClick="digitClick"/>
<Button android:text="-" android:onClick="operatorClick"/>
<Button android:text="0" android:onClick="digitClick"/>
<Button android:text="C" android:onClick="clearClick"/>
<Button android:text="=" android:onClick="equalClick"/>
<Button android:text="+" android:onClick="operatorClick"/>
</GridLayout>
</LinearLayout>
OUTPUT: