Program 3
Program 3
<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;
TextView result;
@Override
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('+'));
String s1 = num1.getText().toString().trim();
String s2 = num2.getText().toString().trim();
if (s1.isEmpty() || s2.isEmpty()) {
return;
double a = Double.parseDouble(s1);
double b = Double.parseDouble(s2);
double res = 0;
switch (op) {
case '/':
if (b == 0) {
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;
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);
double x=Double.parseDouble(a),y=Double.parseDouble(b),z=0;
r.setText(""+z);