0% found this document useful (0 votes)
18 views29 pages

Ghost

The document contains multiple practical exercises for Android app development, including user login, alert dialogs, activity lifecycle methods, list views, user registration, floating action buttons, and spinners. Each practical includes Java code for the MainActivity and corresponding XML layout files. The examples demonstrate various UI components and their functionalities within an Android application.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views29 pages

Ghost

The document contains multiple practical exercises for Android app development, including user login, alert dialogs, activity lifecycle methods, list views, user registration, floating action buttons, and spinners. Each practical includes Java code for the MainActivity and corresponding XML layout files. The examples demonstrate various UI components and their functionalities within an Android application.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Practical 1: Login

MainActivity.java

package com.example.practice;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

private EditText etUsername, etPassword;

private Button loginBTN;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

EdgeToEdge.enable(this);

setContentView(R.layout.activity_main);

etUsername = findViewById(R.id.etUsername);

etPassword = findViewById(R.id.etPassword);

loginBTN = findViewById(R.id.etLoginBTN);

loginBTN.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

validateLogin();
}

});

private void validateLogin() {

String username = etUsername.getText().toString().trim();

String password = etPassword.getText().toString().trim();

if(username.isEmpty() || password.isEmpty()){

Toast.makeText(this, "Username or Password cannot be empty",


Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(this, "Login Successful", Toast.LENGTH_SHORT).show();

activity_main.xml

<?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:id="@+id/main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp"

android:gravity="center"

tools:context=".MainActivity">

<EditText

android:id="@+id/etUsername"

android:layout_height="wrap_content"
android:layout_width="match_parent"

android:hint="Username"

android:inputType="text"

android:padding="10dp"

android:textSize="30dp"

/>

<EditText

android:id="@+id/etPassword"

android:layout_below="@+id/etUsername"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="Password"

android:inputType="textPassword"

android:padding="10dp"

android:textSize="30dp"

android:layout_marginTop="10dp"

/>

<Button

android:id="@+id/etLoginBTN"

android:layout_below="@+id/etPassword"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Login"

android:layout_centerHorizontal="true"

android:layout_marginTop="20dp"

/>

</RelativeLayout>

===================================================================================
=======================================================
Practical 1(B): Alert Dialog

MainActivity.java

package com.example.practice;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

private EditText etUsername, etPassword;

private Button loginBTN;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

EdgeToEdge.enable(this);

setContentView(R.layout.activity_main);

@Override

public void onBackPressed() {

super.onBackPressed();

new AlertDialog.Builder(this).setTitle("Exit App").setMessage("Are you sure you


want to Exit?").setPositiveButton("Yes", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

finish();

}).setNegativeButton("No", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

}).setCancelable(false).show();

activity_main.xml

<?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:id="@+id/main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp"

android:gravity="center"

tools:context=".MainActivity">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"
android:text="Press Back button to see the Alert Dialog"

android:textSize="18sp"

android:textAlignment="center"

/>

</RelativeLayout>

===================================================================================
=======================================================

Practical 2: onCreate() , onResume() ,onPause() ,onStop() ,onDestroy()

MainActivity.java

package com.example.practice;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

private EditText etUsername, etPassword;

private Button loginBTN;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);

setContentView(R.layout.activity_main);

Toast.makeText(this, "onCreate()", Toast.LENGTH_SHORT).show();

@Override

protected void onStart() {

super.onStart();

Toast.makeText(this, "onStart()", Toast.LENGTH_SHORT).show();

@Override

protected void onResume() {

super.onResume();

Toast.makeText(this, "onResume()", Toast.LENGTH_SHORT).show();

@Override

protected void onPause() {

super.onPause();

Toast.makeText(this, "onPause()", Toast.LENGTH_SHORT).show();

@Override

protected void onDestroy() {

super.onDestroy();

Toast.makeText(this, "onDestroy()", Toast.LENGTH_SHORT).show();

===================================================================================
=======================================================

Practical 3: ListView
MainActivity.java

package com.example.practice;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.Toast;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

String[] names = {"Alice", "Bob", "Charlie", "David", "Emma", "Frank", "Grace",


"Hannah", "Isaac", "Jack"};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

EdgeToEdge.enable(this);

setContentView(R.layout.activity_main);

ListView listView = findViewById(R.id.listView);

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,


android.R.layout.simple_list_item_1, names);

listView.setAdapter(adapter);

}
activity_main.xml

<?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:id="@+id/main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp"

android:gravity="center"

tools:context=".MainActivity">

<ListView

android:id="@+id/listView"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

</LinearLayout>

===================================================================================
=======================================================

Practical 4: Register User

MainActivity.java

package com.example.practice;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;
import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.Toast;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

private EditText etUsername, etPassword, etEmail;

private RadioGroup rGroup;

private Button btnSubmit;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

EdgeToEdge.enable(this);

setContentView(R.layout.activity_main);

etUsername = findViewById(R.id.etUsername);

etPassword = findViewById(R.id.etPassword);

etEmail = findViewById(R.id.etEmail);

rGroup = findViewById(R.id.rGender);

btnSubmit = findViewById(R.id.btnSubmit);

btnSubmit.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

String username = etUsername.getText().toString().trim();

String password = etPassword.getText().toString().trim();

String email = etEmail.getText().toString().trim();

int selectGenderId = rGroup.getCheckedRadioButtonId();

RadioButton selectedGender = findViewById(selectGenderId);

String gender = selectedGender.getText().toString();

if (username.isEmpty() || password.isEmpty() || email.isEmpty()) {

Toast.makeText(MainActivity.this, "Please Fill all the fields",


Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(MainActivity.this, "Registered: \nUsername: " + username +


"\nEmail: " + email + "\nGender: " + gender, Toast.LENGTH_SHORT).show();

});

activity_main.xml

<?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:id="@+id/main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp"

android:gravity="center"
tools:context=".MainActivity">

<EditText

android:id="@+id/etUsername"

android:hint="Username"

android:inputType="text"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/etEmail"

android:hint="Email"

android:inputType="textEmailAddress"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<RadioGroup

android:id="@+id/rGender"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

<RadioButton

android:id="@+id/rbMale"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Male"

android:checked="true"

/>

<RadioButton

android:id="@+id/rbFemale"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Female"/>
</RadioGroup>

<EditText

android:id="@+id/etPassword"

android:hint="Password"

android:inputType="textPassword"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<Button

android:id="@+id/btnSubmit"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Register"

/>

</LinearLayout>

===================================================================================
=======================================================

Practical 5: Floating Action Button

MainActivity.java

package com.example.practice;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;
import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.Toast;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

public class MainActivity extends AppCompatActivity {

private EditText etUsername, etPassword, etEmail, etPhone;

private FloatingActionButton fab;

private Button btnSubmit;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

EdgeToEdge.enable(this);

setContentView(R.layout.activity_main);

etUsername = findViewById(R.id.etUsername);

etPassword = findViewById(R.id.etPassword);

etEmail = findViewById(R.id.etEmail);

etPhone = findViewById(R.id.etPhone);

fab = findViewById(R.id.fab);

btnSubmit = findViewById(R.id.btnSubmit);

btnSubmit.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String username = etUsername.getText().toString().trim();

String password = etPassword.getText().toString().trim();

String email = etEmail.getText().toString().trim();


String phone = etPhone.getText().toString().trim();

if (username.isEmpty() || password.isEmpty() || email.isEmpty() ||


phone.isEmpty()) {

Toast.makeText(MainActivity.this, "Please Fill all the fields",


Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(MainActivity.this, "Registered: \nUsername: " + username +


"\nEmail: " + email + "\nPhone: " + phone, Toast.LENGTH_SHORT).show();

});

fab.setOnClickListener(

new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(MainActivity.this, "Floating Action Button Clicked",


Toast.LENGTH_SHORT).show();

);

activity_main.xml

<?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:id="@+id/main"

android:layout_width="match_parent"

android:layout_height="match_parent"
android:orientation="vertical"

android:padding="16dp"

android:gravity="center"

tools:context=".MainActivity">

<EditText

android:id="@+id/etUsername"

android:hint="Username"

android:inputType="text"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/etEmail"

android:hint="Email"

android:inputType="textEmailAddress"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/etPhone"

android:hint="Phone"

android:inputType="number"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/etPassword"

android:hint="Password"

android:inputType="textPassword"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<Button
android:id="@+id/btnSubmit"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Register"

/>

<com.google.android.material.floatingactionbutton.FloatingActionButton

android:id="@+id/fab"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@android:drawable/ic_input_add"

/>

</LinearLayout>

===================================================================================
=======================================================

Practical 6: Spinner

MainActivity.java

package com.example.practice;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.Spinner;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.graphics.Insets;

import androidx.core.view.ViewCompat;

import androidx.core.view.WindowInsetsCompat;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

public class MainActivity extends AppCompatActivity {

private EditText etFirstName, etLastName, etEmail, etPassword, etConfirmPassword;

private Spinner spinnerCountry;

private Button btnSubmit;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

EdgeToEdge.enable(this);

setContentView(R.layout.activity_main);

etFirstName = findViewById(R.id.etFirstName);

etLastName = findViewById(R.id.etLastname);

etPassword = findViewById(R.id.etPassword);

etEmail = findViewById(R.id.etEmail);

etConfirmPassword = findViewById(R.id.etConfirmPassword);

spinnerCountry = findViewById(R.id.spinnerCountry);

btnSubmit = findViewById(R.id.btnSubmit);

String[] countries = {"Select Country", "India", "USA", "Canada", "UK",


"Australia"};

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,


android.R.layout.simple_spinner_dropdown_item,countries);

spinnerCountry.setAdapter(adapter);

btnSubmit.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

String firstName = etFirstName.getText().toString().trim();

String lastName = etLastName.getText().toString().trim();

String confirmPassword = etConfirmPassword.getText().toString().trim();

String password = etPassword.getText().toString().trim();

String email = etEmail.getText().toString().trim();

String country = spinnerCountry.getSelectedItem().toString();

if (firstName.isEmpty() || password.isEmpty() || email.isEmpty() ||


lastName.isEmpty() || confirmPassword.isEmpty() || country.equals("Select
Country")) {

Toast.makeText(MainActivity.this, "Please Fill all the fields",


Toast.LENGTH_SHORT).show();

} else if(!password.equals(confirmPassword)){

Toast.makeText(MainActivity.this, "Password do not match",


Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(MainActivity.this, "Registered: \nFull name: " + firstName


+ " " + lastName + "\nEmail: " + email + "\nCountry: " + country,
Toast.LENGTH_SHORT).show();

});

activity_main.xml

<?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:id="@+id/main"

android:layout_width="match_parent"
android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp"

android:gravity="center"

tools:context=".MainActivity">

<EditText

android:id="@+id/etFirstName"

android:hint="FirstName"

android:inputType="text"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/etLastname"

android:hint="Lastname"

android:inputType="text"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/etEmail"

android:hint="Email"

android:inputType="textEmailAddress"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<Spinner

android:id="@+id/spinnerCountry"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

<EditText

android:id="@+id/etPassword"
android:hint="Password"

android:inputType="textPassword"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/etConfirmPassword"

android:hint="Confirm Password"

android:inputType="textPassword"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<Button

android:id="@+id/btnSubmit"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Register"

/>

</LinearLayout>

===================================================================================
=======================================================

Practical 7: Registration Using CheckBox

MainActivity.java

package com.example.practice;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

// Declare UI components

private EditText editTextName;

private EditText editTextEmail;

private EditText editTextPassword;

private CheckBox checkBoxTerms;

private Button buttonRegister;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

editTextName = findViewById(R.id.editTextName);

editTextEmail = findViewById(R.id.editTextEmail);

editTextPassword = findViewById(R.id.editTextPassword);

checkBoxTerms = findViewById(R.id.checkBoxTerms);

buttonRegister = findViewById(R.id.buttonRegister);

buttonRegister.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

validateRegistration();

});

private void validateRegistration() {

String name = editTextName.getText().toString().trim();

String email = editTextEmail.getText().toString().trim();

String password = editTextPassword.getText().toString().trim();

if(name.isEmpty() || email.isEmpty() || password.isEmpty()){


Toast.makeText(this, "Please enter all the fields",
Toast.LENGTH_SHORT).show();

return;

if (!checkBoxTerms.isChecked()) {

Toast.makeText(this, "Please accept the terms and conditions",


Toast.LENGTH_SHORT).show();

return;

Toast.makeText(this, "Registration Successful!", Toast.LENGTH_SHORT).show();

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp">

<EditText

android:id="@+id/editTextName"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="Full Name"

android:inputType="textPersonName"

android:layout_marginBottom="8dp"/>

<EditText

android:id="@+id/editTextEmail"

android:layout_width="match_parent"
android:layout_height="wrap_content"

android:hint="Email Address"

android:inputType="textEmailAddress"

android:layout_marginBottom="8dp"/>

<EditText

android:id="@+id/editTextPassword"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="Password"

android:inputType="textPassword"

android:layout_marginBottom="8dp"/>

<CheckBox

android:id="@+id/checkBoxTerms"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="I accept the Terms and Conditions"

android:layout_marginBottom="16dp"/>

<Button

android:id="@+id/buttonRegister"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Register"/>

</LinearLayout>

===================================================================================
=======================================================

Practical 8: Use indent and send data to next page & Contraint Layout

MainActivity.java

package com.example.practice;
import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private EditText editTextEmail, editTextPassword;

private Button buttonLogin;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

editTextEmail = findViewById(R.id.editTextEmail);

editTextPassword = findViewById(R.id.editTextPassword);

buttonLogin = findViewById(R.id.buttonLogin);

buttonLogin.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String email = editTextEmail.getText().toString().trim();

String password = editTextPassword.getText().toString().trim();

if (email.isEmpty() || password.isEmpty()) {

Toast.makeText(MainActivity.this, "Please enter email and password",


Toast.LENGTH_SHORT).show();

} else {

Intent intent = new Intent(MainActivity.this, WelcomeActivity.class);

intent.putExtra("USER_EMAIL", email);

startActivity(intent);

}
}

});

WelcomeActivity.java

package com.example.practice;

import android.os.Bundle;

import android.widget.TextView;

import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class WelcomeActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_welcome);

TextView textViewWelcome = findViewById(R.id.textViewWelcome);

if (getIntent() != null) {

String userEmail = getIntent().getStringExtra("USER_EMAIL");

if (userEmail != null && !userEmail.isEmpty()) {

textViewWelcome.setText("Welcome, " + userEmail);

} else {

textViewWelcome.setText("Welcome!");

Toast.makeText(this, "No email received", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(this, "Error starting activity", Toast.LENGTH_SHORT).show();

}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="16dp">

<EditText

android:id="@+id/editTextEmail"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:hint="Email"

android:inputType="textEmailAddress"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintEnd_toEndOf="parent"/>

<EditText

android:id="@+id/editTextPassword"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:hint="Password"

android:inputType="textPassword"

android:layout_marginTop="16dp"

app:layout_constraintTop_toBottomOf="@+id/editTextEmail"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintEnd_toEndOf="parent"/>
<Button

android:id="@+id/buttonLogin"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:text="Login"

android:layout_marginTop="16dp"

app:layout_constraintTop_toBottomOf="@+id/editTextPassword"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintEnd_toEndOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

activity_welcome.xml

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="16dp">

<TextView

android:id="@+id/textViewWelcome"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:textSize="18sp"

android:textAlignment="center"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintEnd_toEndOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
<activity

android:name=".WelcomeActivity"

android:exported="true" /> --> (Add this line at last of AndroidManifestXml


file)

===================================================================================
=======================================================

You might also like