First, you need to add some colors in the colors.xml
file located in the res/values
directory.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="primaryColor">#512DA8</color> <!-- Deep Purple -->
<color name="primaryDarkColor">#311B92</color>
<color name="accentColor">#FF6F00</color> <!-- Amber -->
<color name="backgroundColor">#F3F4F6</color> <!-- light grey -->
<color name="buttonColor">#00ACC1</color> <!-- Teal -->
<color name="textColor">#212121</color>
</resources>
Now you need to set the style in your themes.xml
file located in the res/values
directory.
<style name="Theme.DoctorApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<item name="colorPrimary">@color/primaryColor</item>
<item name="colorPrimaryVariant">@color/primaryDarkColor</item>
<item name="colorOnPrimary">@android:color/white</item>
<item name="colorAccent">@color/accentColor</item>
<item name="android:colorBackground">@color/backgroundColor</item>
<item name="android:textColor">@color/textColor</item>
<item name="android:buttonStyle">@style/Widget.MaterialComponents.Button</item>
</style>
I have added a button click animation. If you want to use this animation, make sure to create a directory named animator
inside the res
folder, and within it, create a resource file named button_press.xml
. If you do not wish to use the animation, you can remove the related code from the Java file.
button_press.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<objectAnimator
android:propertyName="translationZ"
android:duration="100"
android:valueTo="2dp"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:propertyName="translationZ"
android:duration="100"
android:valueTo="6dp"
android:valueType="floatType" />
</item>
</selector>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:padding="24dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="Doctor Registration"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="@color/primaryColor"
android:layout_gravity="center"
android:layout_marginBottom="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="12dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/doc_id"
android:hint="Doctor ID"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="12dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/first_name"
android:hint="First Name"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="12dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/last_name"
android:hint="Last Name"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="12dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/mobile"
android:hint="Mobile Number"
android:inputType="phone"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="12dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/address"
android:hint="Address"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="12dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/city"
android:hint="City"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="20dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/specialization"
android:hint="Specialization"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/submit_button"
android:text="Submit"
android:backgroundTint="@color/buttonColor"
android:textColor="@android:color/white"
android:stateListAnimator="@animator/button_press"
android:elevation="6dp"
android:layout_marginTop="12dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/search_button"
android:text="Go to Search"
android:layout_marginTop="10dp"
android:backgroundTint="@color/accentColor"
android:textColor="@android:color/white"
android:elevation="6dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
activity_search
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="color/white"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="20dp"
android:text="Search Doctor"
android:textColor="@color/primaryColor"
android:textSize="24sp"
android:textStyle="bold" />
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/search_doc_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Doctor ID"
android:inputType="text" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/search_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/buttonColor"
android:elevation="6dp"
android:stateListAnimator="@animator/button_press"
android:text="Search"
android:textColor="@android:color/white" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:backgroundTint="@android:color/white">
<TextView
android:id="@+id/result_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Result will appear here"
android:textColor="@color/textColor"
android:textSize="16sp" />
</androidx.cardview.widget.CardView>
</LinearLayout>
</ScrollView>
DoctorDbHelper.java
package com.tecvipul.doctorinfosqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DoctorDbHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "DoctorDB.db";
private static final int DB_VERSION = 1;
public DoctorDbHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE Doc_detail (" +
"doc_id TEXT PRIMARY KEY, " +
"firstname TEXT, " +
"lastname TEXT, " +
"mob TEXT, " +
"address TEXT, " +
"city TEXT, " +
"specialization TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS Doc_detail");
onCreate(db);
}
}
MainActivity.java
package com.tecvipul.doctorinfosqlite;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
EditText docId, firstName, lastName, mobile, address, city, specialization;
Button submitBtn, goToSearch;
DoctorDbHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new DoctorDbHelper(this);
docId = findViewById(R.id.doc_id);
firstName = findViewById(R.id.first_name);
lastName = findViewById(R.id.last_name);
mobile = findViewById(R.id.mobile);
address = findViewById(R.id.address);
city = findViewById(R.id.city);
specialization = findViewById(R.id.specialization);
submitBtn = findViewById(R.id.submit_button);
goToSearch = findViewById(R.id.search_button);
submitBtn.setOnClickListener(v -> {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("doc_id", docId.getText().toString());
values.put("firstname", firstName.getText().toString());
values.put("lastname", lastName.getText().toString());
values.put("mob", mobile.getText().toString());
values.put("address", address.getText().toString());
values.put("city", city.getText().toString());
values.put("specialization", specialization.getText().toString());
long newRowId = db.insert("Doc_detail", null, values);
Toast.makeText(this, newRowId != -1 ? "Doctor added!" : "Error adding doctor", Toast.LENGTH_SHORT).show();
});
goToSearch.setOnClickListener(v -> startActivity(new Intent(this, SearchActivity.class)));
}
}
SearchActivity.java
package com.tecvipul.doctorinfosqlite;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
public class SearchActivity extends AppCompatActivity {
EditText docIdInput;
Button searchBtn;
TextView resultView;
DoctorDbHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
docIdInput = findViewById(R.id.search_doc_id);
searchBtn = findViewById(R.id.search_button);
resultView = findViewById(R.id.result_text);
dbHelper = new DoctorDbHelper(this);
searchBtn.setOnClickListener(v -> {
String docId = docIdInput.getText().toString();
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM Doc_detail WHERE doc_id = ?", new String[]{docId});
if (cursor.moveToFirst()) {
String info = "ID: " + cursor.getString(0) + "\n" +
"Name: " + cursor.getString(1) + " " + cursor.getString(2) + "\n" +
"Mobile: " + cursor.getString(3) + "\n" +
"Address: " + cursor.getString(4) + "\n" +
"City: " + cursor.getString(5) + "\n" +
"Specialization: " + cursor.getString(6);
resultView.setText(info);
} else {
resultView.setText("Doctor not found.");
}
cursor.close();
});
}
}
Stay Connected With Us: If you have any query regarding this application, feel free to comment below. Also, don’t forget to follow this blog using the follow option on the right side.
0 Comments
If you have any doubts, Please let me know