How to create a Custom Dialog box in android in Java?

 

How to create a Custom Dialog box in android in Java:

A dialog is a small window that prompts the user to make a decision or enter additional information. A dialog does not fill the screen and is normally used for modal events that require users to take an action before they can proceed.

................................................ ................................................

Step 1 : Color add: (you change this color as your wish)

Copy this color and paste this color into your color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="main_color">#1F1F22</color>1F1F22
<color name="main_color2">#009688</color>
<color name="main_color3">#E91E63</color>
<color name="listItem_color">#004B7D</color>
<color name="listItem_textColor">#93CAFF</color>
</resources>

Step 2 : activity_main

Activity Main .xml

Code  xml code

Layout Name : Activity main.xml
Create a file into layout folder named: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"
tools:context=".MainActivity"
android:background="#101120"
>

<TextView
android:id="@+id/header_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="অশরীরী"
android:layout_marginTop="15sp"
android:textSize="18sp"
android:textColor="#E9FFEE"
android:textStyle="bold"
android:textAlignment="center"
android:layout_alignParentTop="true"/>

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/header_title"
android:layout_above="@id/adViewContainer"
>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="স্যার এই নিন চাবিসুব্রত চাবির গোছা এগিয়ে দিলো। চাবি নিয়ে রাজশেখর বললেনতুমি ছাড়া এই বাড়িতে আর কে কে আছে কাজ করা দেখাশোনা করার জন্য?” “আমিই আপাতত কেয়ারটেকারের ভূমিকা পালন করছি। চম্পা আর গৌর এই বাড়ি ঝেড়ে পুঁছে গুছিয়ে রাখে। যারা পিকনিকের জন্য আসে চম্পা তাদের রান্নাবান্নাও করে দেয়।
\n\nতবে রাতে কেউ থাকে না তো আমরাও কেউ রাতে থাকি না। সন্ধ্যের মধ্যে কাজ শেষ করে বাড়ি ফিরে যাই। আমাদের বাড়ি অবশ্য খুব দূরে নয়। এই বাড়ির বাউন্ডারির ঠিক বাইরেই কিছু ঘর আছে সেখানেই থাকি। আসলে বাড়ির যিনি প্রথম মালিক ছিলেন তিনি এই ব্যবস্থাই করেছিলেন” “ঠিক আছে। তোমাকে ডাকলে যাতে পাওয়া যায় তার কি কোন ব্যবস্থা আছে?”
\n\n“হ্যাঁ আছে স্যার। যে ঘরে আপনারা শোবেন সেই ঘরে একটা দড়ি ঝুলতে দেখবেন। সেটা টানলে আমার ঘরের ঘণ্টাটা বেজে উঠবে, আমি জানতে পারবো আপনারা ডাকছেন” “তুমি তো আমাকে সেই আদ্যিকালের গল্প শোনাচ্ছ। তোমার মোবাইল নেই যাতে ফোন করলে তুমি জানতে পারবে?” “হ্যাঁ আছে স্যার। তবে বুঝতেই তো পারছেন গ্রামাঞ্চল তো সন্ধ্যার পর ভালোভাবে টাওয়ার কানেকশন পাওয়া যায় না” “ওঃ ঠিক আছে।
\n\nতা তুমি কি এখনি চলে যাবে?” “তা কেন স্যার। আপনারা রাতে কি খাবেন সেটা বলে দিলে চম্পাকে দিয়ে বানিয়ে ঘণ্টাখানেক পরে এসে পৌঁছে দিয়ে যাবোরাজ ওর বন্ধু অনিমেষের দিকে তাকিয়ে বললেনকি হে রাতে কি খাবে? এরকম ব্যাপার জানলে খাবার কিনেই নিয়ে আসতাম আসার পথেঅনি বললেনআরে অত চিন্তা কীসের। ও তো বলছে রান্না করিয়ে দিয়ে যাবে” “তাহলে বলো কি খাবে?” “বেশি আর কি লুচি আর পাঁঠার কষা মাংস, আর একটু গা গরম করার পানীয়তারপর সুব্রতর দিকে তাকিয়ে বললকি হে হবে তো?” “হ্যাঁ হ্যাঁ।
\n\nআমিই নিয়ে আসবো” “ঠিক আছে তাহলে এসো। আমরা একটু ঘুরে দেখি বাড়িটা কেমন। আর যে ঘরে শোব তা কেমন সাজিয়ে গুছিয়ে রেখেছো তোমরাসুব্রত চলে যাওয়ার পর রাজ আর অনি নীচের ড্রয়িংরুম থেকে পায়ে পায়ে উঠে আসে দোতলায়। পুরনোদিনের জমিদারদের বাড়ি গঙ্গার পাড়ে। এক কালে নাকি জমিদাররা এখানে থাকতো তারপর কোন এক পুরুষ শহরের দিকে বাড়ি করে ওখানে সপরিবারে চলে যান। তারপর থেকে বাড়িটা পড়ে ছিল। কয়েক পুরুষ পর এক ছেলে যে বর্তমানে বাড়ির মালিক বাড়িটা ভাড়া দিচ্ছেন পিকনিক করার জন্য।
\n\nএতো বড় বাড়ি দেখাশোনা করে রাখার খরচ প্রচুর। বাড়ি ভাড়া দিলে কিছু টাকা তো উঠে আসে। তাই এই ব্যবস্থা। বাড়ির ভেতরে পা দেওয়ার পর ওদের দুজনেরই মনে হচ্ছিলো যেন সত্যি জমিদার আমলে এসে উপস্থিত হয়েছেন। ওদের ঘরে এসে উপস্থিত হলেন ওরা দুজনে। বেশ উঁচু রাজকীয় খাটে শুভ্র সফেন বিছানা পাতা। তার সাথে বালিশ কোলবালিশ, সব আছে। ঝাড়বাতিটা জ্বলছে, এক মায়াবী পরিবেশ তৈরি হয়েছে। পাখার সুইচ দিতে পাখা বেশ জোরে ঘুরতে শুরু করলো।"
android:layout_margin="15sp"
android:lineHeight="25dp"
android:textSize="15sp"
android:textColor="#E9FFEE"
tools:ignore="UnusedAttribute"
android:justificationMode="inter_word"
/>

</LinearLayout>

</ScrollView>



<!-- ***** START : Banner Ad Container ***** -->
<LinearLayout
android:id="@+id/adViewContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_marginTop="15dp"
>
</LinearLayout>
<!-- ***** END : Banner Ad Container ***** -->


</RelativeLayout>

Step 3 : Custom Dialog Box Design :

Layout Name : dialog_exitapp.xml
Create a file into layout folder named: dialog_exitapp.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="wrap_content"
android:orientation="vertical"
android:padding="10dp"
android:background="@drawable/custom_dialog_bg"
>


<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/main_color"
android:orientation="vertical"
android:paddingStart="30dp"
android:paddingEnd="30dp"
>

<ImageView
android:layout_width="65dp"
android:layout_height="65dp"
android:src="@mipmap/ic_launcher"
android:layout_gravity="center"
android:layout_marginTop="3dp"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:text="Hope to see you soon!"
android:textColor="@color/main_color2"
android:textSize="21sp"
android:textStyle="bold" />

<TextView
android:id="@+id/notifyUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:layout_marginBottom="15sp"
android:text="Do you want to exit?"
android:textColor="@color/listItem_textColor"
android:textSize="16sp"
android:textStyle="bold" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
>

<Button
android:id="@+id/cancelBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:backgroundTint="@color/main_color2"
android:text="Cancel"
android:textColor="@color/white" />

<Button
android:id="@+id/exitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:backgroundTint="@color/main_color3"
android:text="Exit"
android:textColor="@color/white" />

</LinearLayout>

</LinearLayout>


</LinearLayout>

Step 3 : Custom Dialog Box Background Shape Design :

Shape Name : custom_dialog_bg.xml
Create a file into drawable folde named: custom_dialog_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>

<corners android:radius="20dp"/>
<solid android:color="@color/main_color"/>

</shape>


Step 4 : Custom Dialog Box Java Code :

Java Code :  Java method
Copy this code and paste this code into your MainActivity or Homeactivity Java file into onBackPressed() method.

package com.example.movies;

import android.app.Dialog;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.Button;


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 {



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});

}//onCreate end

@Override
public void onBackPressed() {
Dialog exitDialog = new Dialog(MainActivity.this);
exitDialog.setContentView(R.layout.dialog_exitapp);
exitDialog.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
exitDialog.getWindow().setBackgroundDrawable(getDrawable(R.drawable.custom_dialog_bg));

Button cancelBtn = exitDialog.findViewById(R.id.cancelBtn);
Button exitBtn = exitDialog.findViewById(R.id.exitBtn);

cancelBtn.setOnClickListener(v -> {
exitDialog.dismiss();
});

exitBtn.setOnClickListener(v -> {
exitDialog.dismiss();
super.onBackPressed();
});

exitDialog.setCancelable(false);
exitDialog.show();

}


}//MainActivity ..end


Thanks from
https://islamictop123.blogspot.com/