Practical 27 import android.content.
ContentValues;
import android.content.Context;
import android.database.Cursor;
Activity_login.xml import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout public class DatabaseHelper extends SQLiteOpenHelper {
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" private static final String DATABASE_NAME =
android:layout_width="match_parent" "loginapp.db";
android:layout_height="match_parent" private static final int DATABASE_VERSION = 1;
android:orientation="vertical" private static final String TABLE_NAME = "users";
android:gravity="center" private static final String COLUMN_ID = "id";
android:padding="20dp"> private static final String COLUMN_USERNAME =
"username";
<EditText private static final String COLUMN_PASSWORD =
android:id="@+id/editTextUsername" "password";
android:layout_width="match_parent"
android:layout_height="wrap_content" public DatabaseHelper(Context context) {
android:hint="Enter Username" super(context, DATABASE_NAME, null,
tools:ignore="TouchTargetSizeCheck" /> DATABASE_VERSION);
}
<EditText
android:id="@+id/editTextPassword" @Override
android:layout_width="match_parent" public void onCreate(SQLiteDatabase db) {
android:layout_height="wrap_content" String createTable = "CREATE TABLE " + TABLE_NAME
android:hint="Enter Password" + " (" +
android:inputType="textPassword" COLUMN_ID + " INTEGER PRIMARY KEY
tools:ignore="TouchTargetSizeCheck" /> AUTOINCREMENT, " +
COLUMN_USERNAME + " TEXT UNIQUE, " +
<Button COLUMN_PASSWORD + " TEXT)";
android:id="@+id/btnLogin" db.execSQL(createTable);
android:layout_width="match_parent"
android:layout_height="wrap_content" // Insert a default user for testing
android:text="Login" /> ContentValues values = new ContentValues();
values.put(COLUMN_USERNAME, "admin");
</LinearLayout> values.put(COLUMN_PASSWORD, "12345"); // Default
password
db.insert(TABLE_NAME, null, values);
}
Activity_success.xml
@Override
<?xml version="1.0" encoding="utf-8"?>
public void onUpgrade(SQLiteDatabase db, int oldVersion,
<LinearLayout
int newVersion) {
xmlns:android="http://schemas.android.com/apk/res/android"
db.execSQL("DROP TABLE IF EXISTS " +
android:layout_width="match_parent"
TABLE_NAME);
android:layout_height="match_parent"
onCreate(db);
android:gravity="center"
}
android:orientation="vertical"
android:padding="20dp">
// Check login credentials
public boolean checkUser(String username, String password)
<TextView
{
android:id="@+id/textViewSuccess"
SQLiteDatabase db = this.getReadableDatabase();
android:layout_width="wrap_content"
String query = "SELECT * FROM " + TABLE_NAME + "
android:layout_height="wrap_content"
WHERE " + COLUMN_USERNAME + "=? AND " +
android:text="Login Successful!"
COLUMN_PASSWORD + "=?";
android:textSize="22sp"
Cursor cursor = db.rawQuery(query, new
android:textStyle="bold"/>
String[]{username, password});
</LinearLayout>
boolean exists = (cursor.getCount() > 0);
cursor.close();
DataBaseHelper.java db.close();
return exists;
package com.example.loginapp; }
}
mainacitivity.java @Override
protected void onCreate(Bundle savedInstanceState) {
package com.example.loginapp; super.onCreate(savedInstanceState);
setContentView(R.layout.activity_success);
import android.content.Intent;
import android.os.Bundle; TextView textView = findViewById(R.id.textViewSuccess);
import android.view.View; textView.setText("Welcome! You have logged in
import android.widget.Button; successfully.");
import android.widget.EditText; }
import android.widget.Toast; }
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
EditText editTextUsername, editTextPassword;
Button btnLogin;
DatabaseHelper dbHelper; Output:-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
editTextUsername =
findViewById(R.id.editTextUsername);
editTextPassword = findViewById(R.id.editTextPassword);
btnLogin = findViewById(R.id.btnLogin);
dbHelper = new DatabaseHelper(this);
btnLogin.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
String username =
editTextUsername.getText().toString().trim();
String password =
editTextPassword.getText().toString().trim();
if (dbHelper.checkUser(username, password)) {
Toast.makeText(MainActivity.this, "Login
Successful!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,
SuccessActivity.class);
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "Login Failed!
Invalid Credentials.", Toast.LENGTH_SHORT).show();
}
}
});
}
}
SuccessAcitivity.java
package com.example.loginapp;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class SuccessActivity extends AppCompatActivity {