অ্যান্ড্রয়েড এক্সিট ডায়ালগ: Java + XML গাইড

অ্যান্ড্রয়েড এক্সিট ডায়ালগ: Java + XML গাইড

অ্যান্ড্রয়েড স্টুডিওতে Java + XML সহ কাস্টম এক্সিট ডায়ালগ তৈরি করুন

হ্যালো! এখানে আপনার শেয়ার করা ইমেজের মতো একটি সুন্দর এক্সিট কনফার্মেশন ডায়ালগের সম্পূর্ণ গাইড। এটি AlertDialog-এর পরিবর্তে Dialog ক্লাস ব্যবহার করে তৈরি, যাতে XML দিয়ে পুরো ডিজাইন কন্ট্রোল করা যায়।

ধাপ ১: XML লেআউট ফাইল তৈরি করুন

res/layout ফোল্ডারে নতুন ফাইল তৈরি করুন: dialog_exit.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="24dp"

    android:background="@drawable/dialog_background"

    android:gravity="center">

    <!-- আইকন (দরজার মতো) -->

    <ImageView

        android:id="@+id/iv_icon"

        android:layout_width="80dp"

        android:layout_height="80dp"

        android:src="@drawable/ic_exit_door"

        android:layout_marginBottom="16dp"

        android:contentDescription="Exit Icon" />

    <!-- টাইটেল টেক্সট -->

    <TextView

        android:id="@+id/tv_title"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="অ্যাপ থেকে বের হতে চান?"

        android:textSize="18sp"

        android:textStyle="bold"

        android:textColor="@android:color/black"

        android:gravity="center"

        android:layout_marginBottom="8dp" />

    <!-- মেসেজ টেক্সট -->

    <TextView

        android:id="@+id/tv_message"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="আপনি কি নিশ্চিত?"

        android:textSize="14sp"

        android:textColor="@android:color/darker_gray"

        android:gravity="center"

        android:layout_marginBottom="24dp" />

    <!-- বাটনগুলো (হরিজন্টাল লেআউট) -->

    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal"

        android:gravity="center"

        android:weightSum="2">

        <!-- না বাটন (সবুজ) -->

        <Button

            android:id="@+id/btn_no"

            android:layout_width="0dp"

            android:layout_height="48dp"

            android:layout_weight="1"

            android:text="না"

            android:textColor="@android:color/white"

            android:background="@drawable/btn_no_background"

            android:layout_marginEnd="8dp" />

        <!-- হ্যাঁ বাটন (লাল) -->

        <Button

            android:id="@+id/btn_yes"

            android:layout_width="0dp"

            android:layout_height="48dp"

            android:layout_weight="1"

            android:text="হ্যাঁ"

            android:textColor="@android:color/white"

            android:background="@drawable/btn_yes_background"

            android:layout_marginStart="8dp" />

    </LinearLayout>

</LinearLayout>

ধাপ ২: Drawable রিসোর্স তৈরি করুন

res/drawable ফোল্ডারে নিচের ফাইলগুলো তৈরি করুন।

dialog_background.xml (রাউন্ডেড ব্যাকগ্রাউন্ড)

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="@android:color/white" />

    <corners android:radius="16dp" />

    <stroke android:width="1dp" android:color="@android:color/darker_gray" />

</shape>

btn_no_background.xml (সবুজ বাটন)

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="@android:color/holo_green_light" />

    <corners android:radius="8dp" />

</shape>

btn_yes_background.xml (লাল বাটন)

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="@android:color/holo_red_light" />

    <corners android:radius="8dp" />

</shape>

টিপ: আইকনের জন্য ic_exit_door.png ডাউনলোড করে drawable-এ রাখুন। অথবা ডিফল্ট ব্যবহার করুন: android:src="@android:drawable/ic_menu_close_clear_cancel"

ধাপ ৩: Java কোড (MainActivity.java)

আপনার Activity-তে এই কোড অ্যাড করুন। ব্যাক বাটন প্রেস করলে ডায়ালগ দেখাবে।

package com.example.yourapp;  // আপনার প্যাকেজ নাম

import androidx.appcompat.app.AppCompatActivity;

import android.app.Dialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.View;

import android.view.Window;

import android.widget.Button;

import android.widget.Toast;

import android.widget.ImageView;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);  // আপনার মেইন লেআউট

    }

    // হার্ডওয়্যার ব্যাক বাটন প্রেস করলে ডায়ালগ দেখানো

    @Override

    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK) {

            showCustomExitDialog();

            return true;

        }

        return super.onKeyDown(keyCode, event);

    }

    // কাস্টম এক্সিট ডায়ালগ ফাংশন

    private void showCustomExitDialog() {

        // Dialog তৈরি করুন

        final Dialog dialog = new Dialog(this);

        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);  // টাইটেল বার লুকান

        dialog.setContentView(R.layout.dialog_exit);  // XML লেআউট সেট করুন

        dialog.setCancelable(false);  // বাইরে ক্লিক করলে বন্ধ হবে না

        // উইন্ডো সাইজ সেট করুন (80% স্ক্রিন)

        dialog.getWindow().setLayout((int) (getResources().getDisplayMetrics().widthPixels * 0.85), 

                                     Window.LayoutParams.WRAP_CONTENT);

        // ভিউগুলো খুঁজে বের করুন

        ImageView ivIcon = dialog.findViewById(R.id.iv_icon);

        TextView tvTitle = dialog.findViewById(R.id.tv_title);

        TextView tvMessage = dialog.findViewById(R.id.tv_message);

        Button btnNo = dialog.findViewById(R.id.btn_no);

        Button btnYes = dialog.findViewById(R.id.btn_yes);

        // টেক্সট সেট করুন (যদি চান, XML-এর পরিবর্তে ডায়নামিক)

        tvTitle.setText("অ্যাপ থেকে বের হতে চান?");

        tvMessage.setText("আপনি কি নিশ্চিত?");

        // না বাটন ক্লিক

        btnNo.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                dialog.dismiss();

                Toast.makeText(MainActivity.this, "সেশন চালিয়ে যান!", Toast.LENGTH_SHORT).show();

            }

        });

        // হ্যাঁ বাটন ক্লিক

        btnYes.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                dialog.dismiss();

                finish();  // অ্যাপ বন্ধ করুন

                // অথবা Toast.makeText(MainActivity.this, "ধন্যবাদ!", Toast.LENGTH_SHORT).show();

            }

        });

        // ডায়ালগ দেখান

        dialog.show();

    }

}

ধাপ ৪: অতিরিক্ত টিপস

  • পারমিশন/ইমপোর্ট: android.app.Dialog import করুন।
  • থিম ম্যাচ: styles.xml-এ <item name="android:windowBackground">@android:color/transparent</item> যোগ করুন।
  • টেস্ট: অ্যাপ রান করে ব্যাক বাটন চাপুন।
  • কাস্টমাইজ: বাংলা ফন্টের জন্য android:fontFamily="sans-serif" যোগ করুন।

যদি সমস্যা হয়: আরও পরিবর্তন চান (যেমন অ্যানিমেশন বা Kotlin), তাহলে বলুন! 😊

Comments