سلام همراهان عزیز ، امیدوارم که خوب بوده باشید. و با اموزش دیالوگ در اندروید درخدمت شما هستم.بعضی اوقات در برنامه ی خود اگر بخواهید از یوزر خود بخواهید تصمیمی بگیرد و گزینه بله یا خیر را انتخاب کند که یا عمل خاصی انجام شود و یا در همان برنامه باقی بماند، می توانید از دیالوگ هشدار استفاده کنید.

برای ساختن یک دیالوگ هشدار لازم است که آبجکتی از AlertDialogBuilder با یک گروه داخلی AlertDialog بسازید. ترکیب آن در زیر ارائه شده است .
?
۱

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

اکنون شما باید دکمه ی مثبت (yes) یا منفی (no) را با استفاده از آبجکت گروه AlertDialogBuilder تنظیم کنید. ترکیب آن در زیر ارائه شده است.
?
۱
۲

alertDialogBuilder.setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)
alertDialogBuilder.setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)

علاوه بر این می توانید از عملکردهای ارائه شده توسط گروه سازنده استفاده کنید تا دیالوگ هشدار را به دلخواه خود بسازید. این عملکردها در زیر ارائه شده اند.
Method type & description
Sr.No
setIcon(Drawable icon) این روش آیکن جعبه ی دیالوگ هشدار را تنظیم می کند.
۱
setCancelable(boolean cancelable) این روش پراپرتی کنسل شدن یا نشدن دیالوگ را تنظیم می کند.
۲
setMessage(CharSequence message) این روش پیام را برای نمایش در دیالوگ هشدار تنظیم می کند.
۳
setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener) این روش لیست آیتم هایی را که باید در دیالوگ به عنوان محتوا نمایش داده شوند، تنظیم می کند. آیتم انتخاب شده توسط شنونده اطلاع داده می شود.
۴
setOnCancelListener(DialogInterface.OnCancelListener onCancelListener) این روش کال بک را تنظیم می کند که اگر دیالوگ کنسل شود، فراخوانده می شود.
۵
setTitle(CharSequence title) این روش عنوانی را تنظیم می کند که باید دردیالوگ ظاهر شود.
۶

پس ایجاد و تنظیم سازنده ی دیالوگ، با فراخواندن روش create() از گروه سازنده، یک دیالوگ هشدار ایجاد خواهید کرد که ترکیب آن عبارت است از
?
۱
۲

AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();

این ترکیب دیالوگ هشدار ایجاد خواهد کرد و آن را روی صفحه نمایش خواهد داد.

مثال زیر AlertDialog را در اندروید توضیح می دهد. این مثال از سه فعالیت متفاوت برای توضیح آن استفاده می کند. دیالوگ از شما می پرسد که به سمت انجام فعالیت، انجام ندادن آن یا کنسل کردن آن بروید. برای انجام آزمایشبا این مثال شما نیازبه یک دستگاه حقیقی و یا یک مقلد دارید.
Description
Steps
شما از Eclipse IDE برای ایجاد یک برنامه ی اندروید استفاده می کنید و آن را با عنوان AlertDialog تحت پکیج com.example.alertdialog قرار می دهید. در هنگام ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن خود هستند تا بتوانید از سطوح بالاتر API ها استفاده کنید.
۱
فایل src/MainActivity.java را تغییر دهید تا برای آغاز دیالوگ کد دیالوگ هشدار اضافه کنید.
۲
فایل لی اوت XML (res/layout/activity_main.xml) را تغییر دهید و اگر لازم است مولفه ی GUI اضافه کنید.
۳
یک فعالیت جدید به نام PositiveActivity ایجاد کنید و آن را با مشاهده ی src/PositiveActivity.java تایید کنید.
۴
فایل لی اوت XML از آخرین فعالیت res/layout/activity_positive.xml را تغییر دهید و اگر لازم است مولفه ی GUI به آن اضافه کنید.
۵
یک فعالیت جدید به نام NegativeActivity ایجاد کنید و آن را با مشاهده ی src/NegativeActivity.java تایید کنید.
۶
فایل لی اوت XML از فعالیت های جدید res/layout/activity_negative.xml را تغییر دهید و اگر لازم است مولفه ی GUI اضافه کنید.
۷
res/values/strings.xml را تغییر دهید تا مقادیر ثابت لازم را تعریف کنید.
۸
برنامه را اجرا کنید و یک دستگاه اجرا کننده ی اندروید انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را تایید کنید.
۹

در اینجا کد تغییر یافته ی of src/com.example.alertdialog/MainActivity.java ارائه شده است.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴
۲۵
۲۶
۲۷
۲۸
۲۹
۳۰
۳۱
۳۲
۳۳
۳۴
۳۵
۳۶
۳۷
۳۸
۳۹
۴۰
۴۱
۴۲
۴۳
۴۴

package com.example.alertdialog;
import com.example.alertdialog.*;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void open(View view){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage(R.string.decision);
alertDialogBuilder.setPositiveButton(R.string.positive_button,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Intent positveActivity = new Intent(getApplicationContext(),com.example.alertdialog.PositiveActivity.class);
startActivity(positveActivity);
}
});
alertDialogBuilder.setNegativeButton(R.string.negative_button,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent negativeActivity = new Intent(getApplicationContext(),com.example.alertdialog.NegativeActivity.class);
startActivity(negativeActivity);
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

در اینجا کد پیش فرض src/com.example.alertdialog/PositiveActivity.java را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷

package com.example.alertdialog;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class PositiveActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_positive);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.positive, menu);
return true;
}
}

در اینجا کد پیش فرض src/com.example.alertdialog/NegativeActivity.java را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰

package com.example.alertdialog;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class NegativeActivity
extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_negative);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.negative, menu);
return true;
}
}

در اینجا کد تغییر یافته ی res/layout/activity_main.xml را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶

در اینجا کد تغییر یافته ی res/layout/activity_positive.xml را مشاهده می کنید.
?
۱
۲
۳
۴

‎‎
‎ ‎
‎ ‎ RelativeLayout>‎

در اینجا کد تغییر یافته ی Strings.xml را مشاهده می کنید.
‎ ‎ ‎ ‎ AlertDialogstring>‎ ‎ Settingsstring>‎ ‎ Hello world!string>‎ ‎ PositiveActivitystring>‎ ‎ NegativeActivitystring>‎ ‎ Positive Activitystring>‎ ‎ Negative Activitystring>‎ ‎ Are you sure, you wanted to make this ‎decisionstring>‎ ‎ +ivestring>‎ ‎ -ivestring>‎ ‎ resources>‎

در اینجا کد پیش فرض AndroidManifest.xml را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷

‎ ‎
‎ ‎ ‎

‎ ‎


‎ ‎
‎ intent-filter>‎
‎ activity>‎

‎ activity>‎

‎ activity>‎
application>‎
‎ manifest>‎

اجازه بدهید برنامه ی دوربین شما را اجرا کنیم. فرض می کنیم که دستگاه موبایل خود را به کامپیوتر متصل کرده اید.برای اجرای برنامه از Eclipse یکی ازفایل های فعالیت برنامه ی خود را باز کرده و از تول بار روی آیکن Run کلیک کنید. قبل ازشروع برنامه Eclipse پنجره ی زیر را برای انتخاب یک گزینه، جایی که برنامه ی اندروید خود را اجرا می کنید، ارائه خواهد داد.
آموزش دیالوگ Alert Dialog در اندروید

دستگاه موبایل خود را به عنوان یک گزینه انتخاب کنید و سپس آن را چک کنید که صفحه ی زیر را نمایش می دهد.
آموزش دیالوگ Alert Dialog در اندروید

اکنون روی دکمه ی Hello world بزنید و جعبه هشدار را مشاهده کنید که چیزی شبیه به تصویر زیر خواهد بود.
آموزش دیالوگ Alert Dialog در اندروید

اکنون یکی از دو گزینه را انتخاب کنید و فعالیت مربوط را مشاهده کنید که در حال بارگذاری میباشد. اگر دکمه ی مثبت را انتخاب کنید صفحه ای مانند تصویر ظاهر خواهد شد.
آموزش دیالوگ Alert Dialog در اندروید

اکنون دکمه ی بازگشت روی دستگاه را زده و گزینه ی منفی را انتخاب کنید که این بار صفحه ی زیر نمایش داده خواهد شد.