Android_Slip_5B

1. Create the layout file (res/layout/activity_main.xml):
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
    android:id="@+id/numberEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Enter a number"
    android:inputType="number" />

    <Button
    android:id="@+id/calculateButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Calculate Factorial"
    android:layout_below="@id/numberEditText"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="16dp" />

    </RelativeLayout>

2. Create the MainActivity Java file:
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;

    import androidx.appcompat.app.AlertDialog;
    import androidx.appcompat.app.AppCompatActivity;

    public class MainActivity extends AppCompatActivity {

    private EditText numberEditText;
    private Button calculateButton;

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

    numberEditText = findViewById(R.id.numberEditText);
    calculateButton = findViewById(R.id.calculateButton);

    calculateButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    calculateFactorial();
    }
    });
    }

    private void calculateFactorial() {
    String inputText = numberEditText.getText().toString();

    if (inputText.isEmpty()) {
    showMessage("Please enter a number");
    return;
    }

    int number = Integer.parseInt(inputText);
    long factorial = calculateRecursiveFactorial(number);

    showMessage("Factorial of " + number + " is " + factorial);
    }

    private long calculateRecursiveFactorial(int n) {
    if (n == 0 || n == 1) {
    return 1;
    } else {
    return n * calculateRecursiveFactorial(n - 1);
    }
    }

    private void showMessage(String message) {
    new AlertDialog.Builder(this)
    .setMessage(message)
    .setPositiveButton("OK", null)
    .show();
    }
    }

No comments:

Post a Comment