کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

استفاده از پنجره های محاوره ای (Dialogue) در برنامه نویسی اندروید

 

clip_image001

دوره آموزش برنامه نویسی اندروید

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

 

استفاده از پنجره های محاوره ای (Dialogue) در برنامه نویسی اندروید 

این فصل از مقاله ی آموزشی نحوه ی استفاده از محاوره (dialogue) در برنامه های کاربردی اندروید را تشریح می کند.

فهرست محتوا

1. محاوره های اندروید

استفاده از محاوره در اندروید

Progress dialogue (محاوره ی پیشرفت فرایند)

ایجاد custom dialogue (محاوره ی اختصاصی)

2. تمرین : نمایش alert dialogue (محاوره ی هشدار)

افزودن محاوره به activity

تست کارایی محاوره

 

1. محاوره های اندروید

استفاده از محاوره در اندروید

می توانید با استفاده از متد ShowDialog (int)، محاوره های مورد نظر را از activity خود باز کنید. محاوره هایی که از طریق activity ایجاد شده اند به همان activity هم مقید و متصل هستند. محاوره تا زمانی که کاربر آن را نبندد، کانون صفحه محسوب می شود.

کلاس Dialog در واقع کلاس پایه ی همگی محاوره ها می باشد. برنامه نویس به طور معمول یکی از زیرکلاس های این کلاس پایه را مورد استفاده قرار می دهد از جمله AlertDialog، progressDialog، DatePickerDialog، TimePickerDialog.

// constant for identifying the dialog
private static final int DIALOG_ALERT = 10;

public void
onClick(View view) {
        showDialog(DIALOG_ALERT);
        }

در صورت نمایش محاوره، سیستم اندروید متد onCreateDialog (int) را فرا می خواند. در این متد برنامه نویس بر اساس پارامتر ورودی (input parameter) محاوره ی صحیح و مد نظر را نمونه سازی می کند. برنامه نویس همیشه باید محاوره را با استفاده از متد onCreateDilaog (int) ایجاد کند، به این خاطر که در این مورد خاص سیستم اندروید خود محاوره را برای برنامه نویس مدیریت می کند.

@Override
protected Dialog onCreateDialog(int
id) {
       
switch
(id) {
       
case
DIALOG_ALERT:
        Builder builder =
new AlertDialog.Builder(this
);
        builder.setMessage(
"This will end the activity"
);
        builder.setCancelable(
true
);
        builder.setPositiveButton(
"I agree"
، new OkOnClickListener());
        builder.setNegativeButton(
"No
، no"، new CancelOnClickListener());
        AlertDialog dialog = builder.create();
        dialog.show();
        }
       
return super
.onCreateDialog(id);
        }


private final class CancelOnClickListener
implements
       
DialogInterface.OnClickListener {
       
public void onClick(DialogInterface dialog
، int which) {
                Toast.makeText(getApplicationContext()
،
"Activity will continue"،
                        Toast.LENGTH_LONG).show();
        }
}

private final class OkOnClickListener
implements
       
DialogInterface.OnClickListener {
       
public void onClick(DialogInterface dialog
، int which) {
                AlertExampleActivity.
this
.finish();
        }
}

اگر می خواهید در آینده محاوره را جهت استفاده از متد اختیاری onPrepareDialog ، (int Dialog) اصلاح کنید، باید بدانید که متد onCreateDialog(int) تنها یکبار فراخوانده می شود.

Progress dialogue (محاوره ی پیشرفت فرایند)

اندروید همچنین یک ProgressDialog ارائه می دهد که با فراخوانی متد progressDialog.open () می توان آن را باز کرد.

ایجاد custom dialogue (محاوره ی اختصاصی)

چنانچه مایلید محاوره های سفارشی خود را ایجاد کنید، ابتدا باید یک فایل layout ویژه ی محاوره بوجود بیاورید. فایل مذکور با متد setContentView () به محاوره ی مربوطه تخصیص داده می شود.

سپس با استفاده از متد dialog.findViewById () المان های مورد نظر را در layout یافته و مقادیر مورد نیاز را به آن ها اتخصاص می دهید.

عنوان محاوره نیز به وسیله ی متد setTitle () تعیین می گردد.

2. تمرین : نمایش alert dialogue (محاوره ی هشدار)

افزودن محاوره به activity       

در این بخش کاربرد محاوره ی AlertDialog در یک activity موجود تشریح می شود. نمونه ای از این کلاس را می توان با builder pattern ایجاد کرد برای مثال چندین متد را با هم فراخواند (method chaining).

در وهله ی اول باید فایل طرح بندی activity شما یک دکمه با خصیصه ی android:onClick داشته باشد که به متد onClick اشاره دارد.

کد activity خود را به کد زیر تغییر دهید.

// constant for identifying the dialog
private static final int DIALOG_ALERT = 10;
// existing code.....
// adjust this method if you have more than
// one button pointing to this method

public void
onClick(View view) {
        showDialog(DIALOG_ALERT);
        }
@Override

protected Dialog onCreateDialog(int
id) {
       
switch
(id) {
       
case
DIALOG_ALERT:
        Builder builder =
new AlertDialog.Builder(this
);
        builder.setMessage(
"This ends the activity"
);
        builder.setCancelable(
true
);
        builder.setPositiveButton(
"I agree"
، new OkOnClickListener());
        builder.setNegativeButton(
"No، no"، new CancelOnClickListener());
        AlertDialog dialog = builder.create();
        dialog.show();
        }
       
return super
.onCreateDialog(id);
        }

private final class CancelOnClickListener
implements
       
DialogInterface.OnClickListener {
       
public void onClick(DialogInterface dialog
، int which) {
                Toast.makeText(getApplicationContext()
،
"Cancle selected، activity continues"،
                        Toast.LENGTH_LONG).show();
        }
}

private final class OkOnClickListener
implements
       
DialogInterface.OnClickListener {
       
public void onClick(DialogInterface dialog
، int which) {
                AlertExampleActivity.
this
.finish();
        }
}

1394/07/27 5648 4445
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...