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)
===================================================================================
=======================================================