09982292579
info@mehraeen.ac.ir
فارسی پرچم
فارسی
یک زبان را انتخاب کنید
فارسی پرچم
فارسی
0
دسته ها
خانه تقویم‌آموزشی مدرس وبلاگ چارت‌‌دروس تماس‌با‌ما درباره‌ما انجمن‌ها
برنامه نویسي موبایل 2

جلسه 1 دیالوگ در اندروید 2

خلاصه نکات کلیدی دیالوگ‌ها ابزاری حیاتی برای ارتباط دوطرفه با کاربر در اندروید هستند. AlertDialog برای پیام‌ها و انتخاب‌های ساده و DialogFragment برای مدیریت بهتر چرخه حیات دیالوگ‌ها توصیه می‌شود. می‌توانید دیالوگ‌ها را با اضافه کردن Title, Message, Icon, دکمه‌ها و حتی Layoutهای سفارشی، غنی‌سازی کنید. برای دریافت ورودی از کاربر، می‌توانید از EditText درون یک Layout سفارشی که به دیالوگ افزوده می‌شود، استفاده کنید. مدیریت کلیک روی دکمه‌ها (Listeners) برای اجرای اکشن‌های مورد نظر ضروری است. DatePickerDialog و TimePickerDialog ابزارهای آماده برای انتخاب تاریخ و زمان هستند.

مقدمه:

در توسعه اپلیکیشن‌های اندروید، دیالوگ‌ها نقش مهمی در تعامل با کاربر و ارائه اطلاعات یا دریافت ورودی ایفا می‌کنند. این درس به بررسی انواع دیالوگ‌ها، نحوه ایجاد و سفارشی‌سازی آن‌ها می‌پردازد.


۱. تیترها و مفاهیم کلیدی

۱.۱. دیالوگ چیست؟

دیالوگ یک پنجره کوچک شناور است که برای تعامل با کاربر، نمایش پیام‌های کوتاه، دریافت تأییدیه یا ورودی از کاربر استفاده می‌شود.

۱.۲. انواع دیالوگ‌ها در اندروید:

  • AlertDialog: رایج‌ترین نوع دیالوگ که برای نمایش پیام‌های ساده، دکمه‌های تأیید/لغو یا گزینه‌های انتخاب استفاده می‌شود.

  • ProgressDialog: برای نمایش وضعیت پیشرفت یک عملیات (مانند دانلود یا آپلود) به کار می‌رود. (توجه: در نسخه‌های جدید اندروید، استفاده از ProgressBar در نوار اعلان یا داخل Layout ترجیح داده می‌شود.)

  • DatePickerDialog / TimePickerDialog: دیالوگ‌های تخصصی برای انتخاب تاریخ و زمان.

  • DialogFragment: یک کلاس پشتیبان (support class) که امکان مدیریت چرخه حیات (lifecycle) دیالوگ‌ها را به صورت بهینه‌تر فراهم می‌کند و مدیریت بهتری بر روی رویدادهای بازگرداندن (configuration changes) دارد. استفاده از DialogFragment به جای AlertDialog مستقیم، رویکرد مدرن و توصیه‌شده است.

۱.۳. اجزای اصلی یک AlertDialog:

  • Title (تیتر): عنوان دیالوگ.

  • Message (پیام): متن اصلی که به کاربر نمایش داده می‌شود.

  • Icon (آیکون): یک آیکون اختیاری برای نمایش در کنار تیتر.

  • Positive Button (دکمه مثبت): دکمه‌ای برای تأیید عمل (مانند “OK” یا “Yes”).

  • Negative Button (دکمه منفی): دکمه‌ای برای لغو عمل (مانند “Cancel” یا “No”).

  • Neutral Button (دکمه خنثی): دکمه‌ای با عملکردی بین مثبت و منفی (مانند “Later”).

  • View (نما): امکان قرار دادن یک Layout سفارشی به جای پیام متنی.


۲. مثال‌های عملی (کد)

۲.۱. ایجاد یک AlertDialog ساده:
java
// در داخل یک Activity یا Fragment
new AlertDialog.Builder(this)
.setTitle("عنوان دیالوگ")
.setMessage("این یک پیام نمونه برای دیالوگ است.")
.setIcon(R.drawable.ic_warning) // آیکون دلخواه
.setPositiveButton("تأیید", (dialog, which) -> {
// اکشن کاربر پس از کلیک روی دکمه تأیید
Toast.makeText(this, "تأیید شد!", Toast.LENGTH_SHORT).show();
})
.setNegativeButton("لغو", (dialog, which) -> {
// اکشن کاربر پس از کلیک روی دکمه لغو
Toast.makeText(this, "لغو شد.", Toast.LENGTH_SHORT).show();
dialog.dismiss(); // بستن دیالوگ
})
.show();
۲.۲. استفاده از DialogFragment:

ایجاد یک کلاس سفارشی که از DialogFragment ارث بری می‌کند:

java
// MyCustomDialogFragment.java
public class MyCustomDialogFragment extends DialogFragment {

@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("دیالوگ سفارشی")
.setMessage("این یک دیالوگ سفارشی با استفاده از DialogFragment است.")
.setPositiveButton("باشه", (dialog, id) -> {
// ...
})
.setNegativeButton("نه", (dialog, id) -> {
// ...
});
return builder.create();
}
}

و نمایش آن از Activity:

java
// در Activity
MyCustomDialogFragment dialogFragment = new MyCustomDialogFragment();
dialogFragment.show(getSupportFragmentManager(), "CustomDialog");
۲.۳. دیالوگ با ورودی متن (EditText):
java
// در داخل یک Activity
LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.dialog_edittext, null); // فرض کنید dialog_edittext.xml شامل یک EditText است

new AlertDialog.Builder(this)
.setTitle("ورود نام")
.setView(dialogView) // تنظیم Layout سفارشی
.setPositiveButton("ذخیره", (dialog, which) -> {
EditText nameEditText = dialogView.findViewById(R.id.editTextName); // نام EditText در XML
String name = nameEditText.getText().toString();
Toast.makeText(this, "نام وارد شده: " + name, Toast.LENGTH_SHORT).show();
})
.setNegativeButton("انصراف", null) // null یعنی هیچ کاری انجام ندهد
.show();

  • نکته: برای dialog_edittext.xml، یک فایل Layout ساده شامل یک EditText با id مناسب ایجاد کنید.


۳. تمرین‌های پایان فصل


  1. دیالوگ تأیید خروج: برنامه‌ای ساده طراحی کنید که هنگام کلیک روی دکمه خروج، یک AlertDialog نمایش دهد با این پیام: “آیا از برنامه خارج می‌شوید؟”. دکمه‌های “بله” (که برنامه را می‌بندد) و “خیر” (که دیالوگ را می‌بندد) داشته باشد.

  2. انتخاب آیتم: یک AlertDialog ایجاد کنید که لیستی از چند گزینه (مثلاً رنگ‌های مختلف: قرمز، آبی، سبز) را نمایش دهد. کاربر با انتخاب هر گزینه، یک Toast با نام رنگ انتخاب شده دریافت کند. (راهنمایی: از setItems() استفاده کنید).

  3. فرم ورودی ساده: با استفاده از DialogFragment و یک View سفارشی، دیالوگی طراحی کنید که شامل دو EditText برای دریافت نام و نام خانوادگی کاربر باشد. دکمه “ثبت” نام و نام خانوادگی را دریافت و در Log چاپ کند.


۴. خلاصه نکات کلیدی





























  • دیالوگ‌ها ابزاری حیاتی برای ارتباط دوطرفه با کاربر در اندروید هستند.

  • AlertDialog برای پیام‌ها و انتخاب‌های ساده و DialogFragment برای مدیریت بهتر چرخه حیات دیالوگ‌ها توصیه می‌شود.

  • می‌توانید دیالوگ‌ها را با اضافه کردن Title, Message, Icon, دکمه‌ها و حتی Layoutهای سفارشی، غنی‌سازی کنید.

  • برای دریافت ورودی از کاربر، می‌توانید از EditText درون یک Layout سفارشی که به دیالوگ افزوده می‌شود، استفاده کنید.

  • مدیریت کلیک روی دکمه‌ها (Listeners) برای اجرای اکشن‌های مورد نظر ضروری است.

  • DatePickerDialog و TimePickerDialog ابزارهای آماده برای انتخاب تاریخ و زمان هستند.
درس متنی 1/13
در حال مشاهده
جلسه 1 دیالوگ در اندروید 2