নিউট্রাল বাটনসহ AlertDialog
AlertDialog.Builder-এ setPositiveButton, setNegativeButton, এবং setNeutralButton ব্যবহার করে তিনটি বাটন যোগ করা যায়।
উদাহরণ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
ধাপ ২: লেআউট XML (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:id="@+id/parent"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/customDialog"
android:text="Show Dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
ধাপ ৩: জাভা কোড (src/MainActivity.java)
package com.example.andy.myapplication;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.customDialog).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Alert Dialog");
builder.setMessage("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s");
// পজিটিভ বাটন (হ্যাঁ/ওকে)
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "You have clicked Yes", Toast.LENGTH_LONG).show();
}
});
// নেগেটিভ বাটন (না/ক্যാൻসেল)
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "You have clicked No", Toast.LENGTH_LONG).show();
}
});
// নিউট্রাল বাটন (উদাসীন/শायद)
builder.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "You have clicked Neutral", Toast.LENGTH_LONG).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
});
}
}
বাটন পজিশন (ম্যাটেরিয়াল ডিজাইন)
| বাটন | পজিশন (LTR) | ব্যবহার |
|---|---|---|
| Positive | ডানে (Right) | প্রধান অ্যাকশন (Save, OK, Confirm) |
| Negative | বামে (Left) | দ্বিতীয় অ্যাকশন (Cancel, No) |
| Neutral | মাঝপথ/বামে | বিকল্প অ্যাকশন (Later, Maybe, Skip) |
কাস্টম স্টাইলিং (styles.xml)
<style name="CustomAlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="buttonBarPositiveButtonStyle">@style/PositiveButton</item>
<item name="buttonBarNegativeButtonStyle">@style/NegativeButton</item>
<item name="buttonBarNeutralButtonStyle">@style/NeutralButton</item>
</style>
<style name="PositiveButton" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">#4CAF50</item>
</style>
<style name="NegativeButton" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">#F44336</item>
</style>
<style name="NeutralButton" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">#2196F3</item>
</style>
আধুনিক বিকল্প: MaterialAlertDialogBuilder
// Material Components লাইব্রেরি দরকার
new MaterialAlertDialogBuilder(this)
.setTitle("Title")
.setMessage("Message")
.setPositiveButton("Yes", (dialog, which) -> { /* ... */ })
.setNegativeButton("No", (dialog, which) -> { /* ... */ })
.setNeutralButton("Cancel", (dialog, which) -> { /* ... */ })
.show();