برنامه نویسي موبایل 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مناسب ایجاد کنید.
۳. تمرینهای پایان فصل
- دیالوگ تأیید خروج: برنامهای ساده طراحی کنید که هنگام کلیک روی دکمه خروج، یک
AlertDialogنمایش دهد با این پیام: “آیا از برنامه خارج میشوید؟”. دکمههای “بله” (که برنامه را میبندد) و “خیر” (که دیالوگ را میبندد) داشته باشد. - انتخاب آیتم: یک
AlertDialogایجاد کنید که لیستی از چند گزینه (مثلاً رنگهای مختلف: قرمز، آبی، سبز) را نمایش دهد. کاربر با انتخاب هر گزینه، یکToastبا نام رنگ انتخاب شده دریافت کند. (راهنمایی: ازsetItems()استفاده کنید). - فرم ورودی ساده: با استفاده از
DialogFragmentو یکViewسفارشی، دیالوگی طراحی کنید که شامل دوEditTextبرای دریافت نام و نام خانوادگی کاربر باشد. دکمه “ثبت” نام و نام خانوادگی را دریافت و درLogچاپ کند.
۴. خلاصه نکات کلیدی
- دیالوگها ابزاری حیاتی برای ارتباط دوطرفه با کاربر در اندروید هستند.
AlertDialogبرای پیامها و انتخابهای ساده وDialogFragmentبرای مدیریت بهتر چرخه حیات دیالوگها توصیه میشود.- میتوانید دیالوگها را با اضافه کردن
Title,Message,Icon, دکمهها و حتی Layoutهای سفارشی، غنیسازی کنید. - برای دریافت ورودی از کاربر، میتوانید از
EditTextدرون یک Layout سفارشی که به دیالوگ افزوده میشود، استفاده کنید. - مدیریت کلیک روی دکمهها (Listeners) برای اجرای اکشنهای مورد نظر ضروری است.
DatePickerDialogوTimePickerDialogابزارهای آماده برای انتخاب تاریخ و زمان هستند.
دروس متنی
#1
جلسه 1 دیالوگ در اندروید 2
#2
جلسه 2 صوت و تصویر در اندروید
#3
جلسه 3 نمایش فهرست ها با Recycler View
#4
جلسه 4 Broadcast Receiver
#5
جلسه 5کار با دیتابیس Sqlite
#6
جلسه 6 Shared Preferences
#7
جلسه 7 ارتباط با اینترنت در اندروید و دانلود فایل از آن
#8
جلسه 8 استفاده ازGPS آپدیت وضعیت کاربر در صورت تغییر مکان و یا با فواصل زمان مشخص
#9
جلسه 9آشنایي با نحوه رسم نمودارهاي مختلف در اپلیکیشن هاي اندرویدي
#10
جلسه 10 ارسال و دریافت پیامک با SMS APIاندروید
#11
جلسه 11 Fragment ها
#12
جلسه 12 استفاده از داده هاي xml و json 12
#13
جلسه 13 استفاده از انیمیشن هايxml
مشاهده دروس کامل
بررسی صفحه یادگیری دوره