ساخت دیالوگ استاندارد دوست داشتنی :
ساخت دیالوگ در اندروید استودیو | انواع دیالوگ
ساخت دیالوگ در اندروید استودیو :
شما می توانید دکمه مثبت ، منفی و خنثی را اینجا تنظیم کنید. کاربران را می توان برای هر دکمه به صورت جداگانه تنظیم کرد ، یکی برای هر سه یا اصلاً تنظیم نشده است (onClick روی هر دکمه دکمه فقط رد می شود).
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ |
<span class="pl-k">new</span> <span class="pl-smi">LovelyStandardDialog</span>(<span class="pl-c1">this</span>, <span class="pl-smi">LovelyStandardDialog</span><span class="pl-k">.</span><span class="pl-smi">ButtonLayout</span><span class="pl-c1"><span class="pl-k">.</span>VERTICAL</span>) .setTopColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>indigo) .setButtonsColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>darkDeepOrange) .setIcon(<span class="pl-smi">R</span><span class="pl-k">.</span>drawable<span class="pl-k">.</span>ic_star_border_white_36dp) .setTitle(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>rate_title) .setMessage(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>rate_message) .setPositiveButton(<span class="pl-smi">android<span class="pl-k">.</span>R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>ok, <span class="pl-k">new</span> <span class="pl-smi">View</span>.<span class="pl-smi">OnClickListener</span>() { <span class="pl-k">@Override</span> <span class="pl-k">public</span> <span class="pl-k">void</span> <span class="pl-en">onClick</span>(<span class="pl-smi">View</span> <span class="pl-v">v</span>) { <span class="pl-smi">Toast</span><span class="pl-k">.</span>makeText(context, <span class="pl-s"><span class="pl-pds">"</span>positive clicked<span class="pl-pds">"</span></span>, <span class="pl-smi">Toast</span><span class="pl-c1"><span class="pl-k">.</span>LENGTH_SHORT</span>)<span class="pl-k">.</span>show(); } }) .setNegativeButton(<span class="pl-smi">android<span class="pl-k">.</span>R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>no, <span class="pl-c1">null</span>) .show(); |
LovelyI nfo Dialog
دیالوگ برای نمایش اطلاعات به کاربر ، این محتوا قابل پیمایش است. این دیالوگ گزینه ای دارد که کاربر برای مثال این گزینه رو بزنه دیگه دیگه دیالوگ نشون داده نمیشه به عنوان مثال هنگام نمایش برخی از آموزش ها می تواند مفید باشد.برای مثال دیده ای بعضی از برنامه ها هر بار که وارد برنامه میشوید پیام خوش آمد گویی میدهد ، یک گزینه ای هم هست به نام دیگر این پیام رو نشون نده اگه اون رو بزنید دیگه دیالوگ نشون داده نمیشه .
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
<span class="pl-k">new</span> <span class="pl-smi">LovelyInfoDialog</span>(<span class="pl-c1">this</span>) .setTopColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>darkBlueGrey) .setIcon(<span class="pl-smi">R</span><span class="pl-k">.</span>drawable<span class="pl-k">.</span>ic_info_outline_white_36dp) <span class="pl-c">//This will add Don't show again checkbox to the dialog. You can pass any ID as argument</span> .setNotShowAgainOptionEnabled(<span class="pl-c1">۰</span>) .setNotShowAgainOptionChecked(<span class="pl-c1">true</span>) .setTitle(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>info_title) .setMessage(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>info_message) .show(); |
Lovely Choice Dialog
در اینجا می توانید از دیالوگ های یک گزینه یا چند گزینه استفاده کنید. در صورت گفتگوی چند گزینه ای – دکمه تأیید ظاهر می شود. می توانید مواردی را به عنوان آرایه ، لیست (.toString () برای نمایش آنها به عنوان موارد متنی ساده استفاده کنید) یا آداپتور سفارشی خود را ارائه دهید.برای مثال با لمس یک دکمه دیالوگی باز میشود : آیا شما به همراه غذای خود نوشیدنی میخواهید ؟ یا مثلا لطفا نوشیدنی خود را انتخاب کنید . حال شما در اون دیالوگ ۵ گزینه دارید که باید یکی یا چند گزینه را انتخاب کنید
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ |
<span class="pl-k">ArrayAdapter<<span class="pl-smi">DonationOption</span>></span> adapter <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-smi">DonationAdapter</span>(<span class="pl-c1">this</span>, loadDonationOptions()); <span class="pl-k">new</span> <span class="pl-smi">LovelyChoiceDialog</span>(<span class="pl-c1">this</span>) .setTopColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>darkGreen) .setTitle(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>donate_title) .setIcon(<span class="pl-smi">R</span><span class="pl-k">.</span>drawable<span class="pl-k">.</span>ic_local_atm_white_36dp) .setMessage(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>donate_message) .setItems(adapter, <span class="pl-k">new</span> <span class="pl-smi">LovelyChoiceDialog</span>.<span class="pl-k">OnItemSelectedListener<<span class="pl-smi">DonationOption</span>></span>() { <span class="pl-k">@Override</span> <span class="pl-k">public</span> <span class="pl-k">void</span> <span class="pl-en">onItemSelected</span>(<span class="pl-k">int</span> <span class="pl-v">position</span>, <span class="pl-smi">DonationOption</span> <span class="pl-v">item</span>) { <span class="pl-smi">Toast</span><span class="pl-k">.</span>makeText(context, getString(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>you_donated, item<span class="pl-k">.</span>amount),<span class="pl-smi">Toast</span><span class="pl-c1"><span class="pl-k">.</span>LENGTH_SHORT</span>)<span class="pl-k">.</span>show(); } }) .show(); |
با قابلیت انتخاب چندگانه
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ |
<span class="pl-k">String</span>[] items <span class="pl-k">=</span> getResources()<span class="pl-k">.</span>getStringArray(<span class="pl-smi">R</span><span class="pl-k">.</span>array<span class="pl-k">.</span>food); <span class="pl-k">new</span> <span class="pl-smi">LovelyChoiceDialog</span>(<span class="pl-c1">this</span>, <span class="pl-smi">R</span><span class="pl-k">.</span><span class="pl-smi">style<span class="pl-k">.</span>CheckBoxTintTheme</span>) .setTopColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>darkRed) .setTitle(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>order_food_title) .setIcon(<span class="pl-smi">R</span><span class="pl-k">.</span>drawable<span class="pl-k">.</span>ic_food_white_36dp) .setItemsMultiChoice(items, <span class="pl-k">new</span> <span class="pl-smi">LovelyChoiceDialog</span>.<span class="pl-k">OnItemsSelectedListener<<span class="pl-smi">String</span>></span>() { <span class="pl-k">@Override</span> <span class="pl-k">public</span> <span class="pl-k">void</span> <span class="pl-en">onItemsSelected</span>(<span class="pl-k">List<<span class="pl-smi">Integer</span>></span> <span class="pl-v">positions</span>, <span class="pl-k">List<<span class="pl-smi">String</span>></span> <span class="pl-v">items</span>) { <span class="pl-smi">Toast</span><span class="pl-k">.</span>makeText(<span class="pl-smi">MainActivity</span><span class="pl-k">.</span><span class="pl-c1">this</span>, getString(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>you_ordered, <span class="pl-smi">TextUtils</span><span class="pl-k">.</span>join(<span class="pl-s"><span class="pl-pds">"</span><span class="pl-cce">\n</span><span class="pl-pds">"</span></span>, items)), <span class="pl-smi">Toast</span><span class="pl-c1"><span class="pl-k">.</span>LENGTH_SHORT</span>) .show(); } }) .setConfirmButtonText(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>confirm) .show(); |
ساخت دیالوگ در اندروید استودیو Lovely Text Input Dialog
دیالوگ با دکمه EditText و تأیید. می توانید شیء TextFilter را برای مشخص کردن ورودی قابل قبول تنظیم کنید.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ |
<span class="pl-k">new</span> <span class="pl-smi">LovelyTextInputDialog</span>(<span class="pl-c1">this</span>, <span class="pl-smi">R</span><span class="pl-k">.</span><span class="pl-smi">style<span class="pl-k">.</span>EditTextTintTheme</span>) .setTopColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>darkDeepOrange) .setTitle(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>text_input_title) .setMessage(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>text_input_message) .setIcon(<span class="pl-smi">R</span><span class="pl-k">.</span>drawable<span class="pl-k">.</span>ic_assignment_white_36dp) .setInputFilter(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>text_input_error_message, <span class="pl-k">new</span> <span class="pl-smi">LovelyTextInputDialog</span>.<span class="pl-smi">TextFilter</span>() { <span class="pl-k">@Override</span> <span class="pl-k">public</span> <span class="pl-k">boolean</span> <span class="pl-en">check</span>(<span class="pl-smi">String</span> <span class="pl-v">text</span>) { <span class="pl-k">return</span> text<span class="pl-k">.</span>matches(<span class="pl-s"><span class="pl-pds">"</span><span class="pl-cce">\\</span>w+<span class="pl-pds">"</span></span>); } }) .setConfirmButton(<span class="pl-smi">android<span class="pl-k">.</span>R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>ok, <span class="pl-k">new</span> <span class="pl-smi">LovelyTextInputDialog</span>.<span class="pl-smi">OnTextInputConfirmListener</span>() { <span class="pl-k">@Override</span> <span class="pl-k">public</span> <span class="pl-k">void</span> <span class="pl-en">onTextInputConfirmed</span>(<span class="pl-smi">String</span> <span class="pl-v">text</span>) { <span class="pl-smi">Toast</span><span class="pl-k">.</span>makeText(<span class="pl-smi">MainActivity</span><span class="pl-k">.</span><span class="pl-c1">this</span>, text, <span class="pl-smi">Toast</span><span class="pl-c1"><span class="pl-k">.</span>LENGTH_SHORT</span>)<span class="pl-k">.</span>show(); } }) .show(); |
Lovely Progress Dialog
دیالوگ استاندارد اندروید ProgressBar. به طور پیش فرض قابل فسخ نیست.
۱ ۲ ۳ ۴ ۵ |
<span class="pl-k">new</span> <span class="pl-smi">LovelyProgressDialog</span>(<span class="pl-c1">this</span>) .setIcon(<span class="pl-smi">R</span><span class="pl-k">.</span>drawable<span class="pl-k">.</span>ic_cast_connected_white_36dp) .setTitle(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>connecting_to_server) .setTopColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>teal) .show(); |
Lovely Custom Dialog
در اینجا می توانید نمای خود را برای نمایش منتقل کنید. عنوان ، پیام ، هدر رنگ و نماد همچنان برای استفاده در دسترس خواهد بود. می توانید تنظیم کننده ها ، کلیک شنوندگان و نمونه گیرندگان صرفه جویی در حالت را ارائه دهید.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ |
<span class="pl-k">new</span> <span class="pl-smi">LovelyCustomDialog</span>(<span class="pl-c1">this</span>) .setView(<span class="pl-smi">R</span><span class="pl-k">.</span>layout<span class="pl-k">.</span>item_donate_option) .setTopColorRes(<span class="pl-smi">R</span><span class="pl-k">.</span>color<span class="pl-k">.</span>darkDeepOrange) .setTitle(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>text_input_title) .setMessage(<span class="pl-smi">R</span><span class="pl-k">.</span>string<span class="pl-k">.</span>text_input_message) .setIcon(<span class="pl-smi">R</span><span class="pl-k">.</span>drawable<span class="pl-k">.</span>ic_assignment_white_36dp) .configureView(<span class="pl-c">/* ... */</span>) .setListener(<span class="pl-smi">R</span><span class="pl-k">.</span>id<span class="pl-k">.</span>ld_btn_yes, <span class="pl-c">/* ... */</span>) .setInstanceStateManager(<span class="pl-c">/* ... */</span>) .show(); |
پیکربندی تغییر می کند
یک کلاس LovelySaveStateHandler وجود دارد که به شما کمک می کند تا اطلاعاتی را که درباره گفتگو نشان داده شده است (در صورت وجود) بین تغییرات پیکربندی ، ادامه دهید. هر گفتگو (به جز LovelyCustomDialog) می داند که چگونه حالت خود را ذخیره و بازیابی کند. برای مثال در مورد نحوه مقابله با تغییرات پیکربندی ، به نمونه پروژه مراجعه کنید.
کنترل های رنگی
اگر می خواهید CheckBoxes ، EditTexts و غیره از رنگ های مختلفی برخوردار باشند – آنچه شما نیاز دارید تعریف تم در xml است
۱ ۲ ۳ |
<<span class="pl-ent">style</span> <span class="pl-e">name</span>=<span class="pl-s"><span class="pl-pds">"</span>TintTheme<span class="pl-pds">"</span></span> <span class="pl-e">parent</span>=<span class="pl-s"><span class="pl-pds">"</span>Theme.AppCompat.Light.Dialog.Alert<span class="pl-pds">"</span></span>> <<span class="pl-ent">item</span> <span class="pl-e">name</span>=<span class="pl-s"><span class="pl-pds">"</span>colorAccent<span class="pl-pds">"</span></span>>@color/colorToTintWith</<span class="pl-ent">item</span>> </<span class="pl-ent">style</span>> |
و آن را به عنوان استدلال دوم به سازنده دیالوگ منتقل کنید
۱ |
<span class="pl-k">new</span> <span class="pl-smi">LovelyTextInputDialog</span>(<span class="pl-c1">this</span>, <span class="pl-smi">R</span><span class="pl-k">.</span><span class="pl-smi">style<span class="pl-k">.</span>TintTheme</span>) |
سازگاری دیالوگ های استاندارد
اگر نمی خواهید بازنویسی کنید
۱ |
<span class="pl-smi">Dialog</span><span class="pl-k">.</span><span class="pl-smi">OnClickListener</span> |
پیاده سازی ، شما به سادگی می توانید استفاده کنید
۱ |
<span class="pl-smi">LovalyDialogCompat</span><span class="pl-k">.</span>wrap(yourImplementation) |
برای انتقال آن به یکی از
۱ ۲ |
.setPositiveButton(<span class="pl-c1">...</span>) .setNegativeButton(<span class="pl-c1">...</span>) |
تموم شد انشااله موفق باشی.