TY Practical No. 18 — Develop a program to create two simple activities for Login application
Practical No. 18 — Develop a program to create two simple activities for Login application
1. Project Structure
LoginApp
│
├── app
│ └── src
│ └── main
│
│ ├── java
│ │ └── com.example.loginapp
│ │ ├── MainActivity.java
│ │ └── WelcomeActivity.java
│ │
│ ├── res
│ │ ├── layout
│ │ │ ├── activity_main.xml
│ │ │ └── activity_welcome.xml
│ │ │
│ │ └── values
│ │ └── strings.xml
│ │
│ └── AndroidManifest.xml
2. activity_main.xml (Login Screen)
Locationapp → res → layout → 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:gravity="center"
android:padding="24dp">
<TextView
android:id="@+id/tvStudent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Student: Rahul Sharma"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginBottom="25dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login Application"
android:textSize="22sp"
android:textStyle="bold"
android:layout_marginBottom="30dp"/>
<EditText
android:id="@+id/etUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Username"
android:inputType="textPersonName"/>
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Password"
android:inputType="textPassword"
android:layout_marginTop="15dp"/>
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:layout_marginTop="25dp"/>
</LinearLayout>
3. activity_welcome.xml (Second Activity)
Locationapp → res → layout → activity_welcome.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:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tvWelcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome Screen"
android:textSize="24sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/tvStudentName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Student: Rahul Sharma"
android:textSize="18sp"
android:layout_marginTop="20dp"/>
</LinearLayout>
4. MainActivity.java (Login Activity)
Locationapp → java → com.example.loginapp → MainActivity.java
package com.example.loginapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText etUsername, etPassword;
Button btnLogin;
String correctUsername = "admin";
String correctPassword = "1234";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etUsername = findViewById(R.id.etUsername);
etPassword = findViewById(R.id.etPassword);
btnLogin = findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(v -> {
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString().trim();
if(username.isEmpty() || password.isEmpty())
{
Toast.makeText(MainActivity.this,
"Please enter username and password",
Toast.LENGTH_SHORT).show();
return;
}
if(username.equals(correctUsername) && password.equals(correctPassword))
{
Intent intent = new Intent(MainActivity.this, WelcomeActivity.class);
startActivity(intent);
}
else
{
Toast.makeText(MainActivity.this,
"Invalid Username or Password",
Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
5. WelcomeActivity.java
Locationapp → java → com.example.loginapp → WelcomeActivity.java
package com.example.loginapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class WelcomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
}
}
6. AndroidManifest.xml
Locationapp → manifests → AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.loginapp">
<application
android:allowBackup="true"
android:label="Login App"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
<activity android:name=".WelcomeActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
7. strings.xml
Locationres → values → strings.xml
<resources>
<string name="app_name">Login App</string>
</resources>
8. Login Credentials for Testing
Username : admin
Password : 1234
9. Expected Application Output