In this tutorial we will create two screens. First screen will take one number input from the user. After clicking on the Factorial button, the second screen will open and it should display a factorial of the given number.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:padding="20dp">
<EditText android:id="@+id/etNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter the number"
android:inputType="number"
android:layout_marginTop="50dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Factorial"
android:onClick="displayFactorial"/>
</LinearLayout>
package com.example.factorialintent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText etNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etNumber = findViewById(R.id.etNumber);
}
public void displayFactorial(View view) {
Intent i = new Intent(MainActivity.this, FactorialActivity.class);
i.putExtra("number", etNumber.getText().toString());
startActivity(i);
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FactorialActivity"
android:padding="20dp">
<TextView android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Factorial of number is"
style="@style/TextAppearance.AppCompat.Large"/>
</RelativeLayout>
package com.example.factorialintent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class FactorialActivity extends AppCompatActivity {
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_factorial);
Bundle b = getIntent().getExtras();
int no = Integer.parseInt(b.getString("number"));
long f=1;
for(int i=no; i>0; i--)
{
f = f * i;
}
tv = findViewById(R.id.tv);
tv.setText("Factorial of " + no + " is " + f);
}
}