مشخصات مقاله
-
4441
-
0.0
-
5646
-
0
-
0
استفاده از پنجره های محاوره ای (Dialogue) در برنامه نویسی اندروید
دوره آموزش برنامه نویسی اندروید
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
استفاده از پنجره های محاوره ای (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();
}
}
