Android-এ এক্টিভিটি বন্ধ করার আগে কনফার্মেশন ডায়ালগ দেখানোর পদ্ধতি
এই উদাহরণটি দেখায় কিভাবে ব্যবহারকারী ব্যাক বাটন চাপলে একটি AlertDialog দেখিয়ে এক্টিভিটি বন্ধ করার অনুমতি চাওয়া যায়। এটি অকস্মাত অ্যাপ বন্ধ হওয়া থেকে রক্ষা করে এবং ব্যবহারকারীর সিদ্ধান্ত নিশ্চিত করে।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট ফাইল (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="ব্যাক বাটন চাপলে কনফার্মেশন ডায়ালগ দেখাবে"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
ধাপ ৩: MainActivity.java-এ onBackPressed() ওভাররাইড করুন
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onBackPressed() {
// AlertDialog.Builder ব্যবহার করে কনফার্মেশন ডায়ালগ তৈরি করুন
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("এক্টিভিটি বন্ধ করুন")
.setMessage("আপনি কি নিশ্চিত যে এই এক্টিভিটি বন্ধ করতে চান?")
.setPositiveButton("হ্যাঁ", (dialog, which) -> {
finish(); // এক্টিভিটি বন্ধ করুন
Toast.makeText(MainActivity.this, "এক্টিভিটি বন্ধ হয়েছে", Toast.LENGTH_SHORT).show();
})
.setNegativeButton("না", null) // null দিলে ডায়ালগ শুধু বন্ধ হবে
.show();
}
}
আধুনিক পদ্ধতি: OnBackPressedDispatcher (Activity 1.2.0+)
AndroidX Activity 1.2.0+ এবং Fragment 1.3.0+ থেকে onBackPressed() ডিপ্রিকেট করা হয়েছে। নতুন পদ্ধতিতে OnBackPressedCallback ব্যবহার করুন:
import androidx.activity.OnBackPressedCallback;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// OnBackPressedCallback রেজিস্টার করুন
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
new AlertDialog.Builder(MainActivity.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("এক্টিভিটি বন্ধ করুন")
.setMessage("আপনি কি নিশ্চিত যে এই এক্টিভিটি বন্ধ করতে চান?")
.setPositiveButton("হ্যাঁ", (dialog, which) -> {
// কলব্যাক ডিজেবল করুন এবং ডিফল্ট বিহেভিয়ার চালু করুন
setEnabled(false);
MainActivity.super.onBackPressed();
})
.setNegativeButton("না", null)
.show();
}
});
}
}
বিকল্প: MaterialAlertDialogBuilder (Material Components)
আধুনিক UI-এর জন্য MaterialAlertDialogBuilder ব্যবহার করুন:
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
new MaterialAlertDialogBuilder(this)
.setTitle("এক্টিভিটি বন্ধ করুন")
.setMessage("আপনি কি নিশ্চিত যে এই এক্টিভিটি বন্ধ করতে চান?")
.setPositiveButton("হ্যাঁ", (dialog, which) -> finish())
.setNegativeButton("না", null)
.show();
ধাপ ৪: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<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>
অ্যাপ্লিকেশন চালানোর পদ্ধতি
আপনার Android ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে Run আইকনে ক্লিক করুন। অ্যাপ খুললে ডিভাইসের ব্যাক বাটন চাপুন - কনফার্মেশন ডায়ালগ দেখাবে। "হ্যাঁ" চাপলে অ্যাপ বন্ধ হবে, "না" চাপলে ডায়ালগ বন্ধ হবে।
