حتما توی خیلی از برنامه ها دیدید که توی قسمت تولبار یه علامت منو هست که با کلیک روش ، چندتا گزینه ، مثه تنظیمات و درباره ما باز میشه . ساختن یه منوی پاپ آپ ، خارج از تولبار یه کمی دردسر داره توی جاوا ، که اگه نمایش آیکن هم باشه ، که دیگه مرسی اه ! 

توی این آموزش میخوایم با کاتلین ، یه منویی خارج از تولبار بسازیم که با کلیک روش ، دو تا گزینه نمایش سایت و نمایش پیغام ، نشون داده بشه و کنارشون هم یه آیکن باشه ( ما واسه اضافه کردن آیکن ، توی فولدر res و پوشه drawable راست کلیک میکنیم و گزینه new و vector asset رو انتخاب میکنیم تا از آیکن های خود اندروید استودیو اضافه کنیم )

یه پروژه جدید میسازیم و تیک Kotlin Support رو هم میزینم . توی لایوت اون عکس یا ImageView که میخوایم روش کلیک کنیم و PopupMenu واسمون نشون داده بشه رو اضافه میکنیم : 

توی فولدر res یه فولدر یا directory اضافه میکنیم به اسم menu و یه فایل جدید یه اسم menu_main توش اضافه میکنیم با این کدها : 

حالا به اکتیویتی اصلی میریم ، یعنی MainActiviy.kt و چون توی لایوت ، اون ImageView که مال منو هست رو با آی دی imageView_options تعریف کردیم ، پس این کدها رو اضافه میکنیم که یعنی اگه روی این ImageView کلیک شد ، با توجه به اون آی دی که کاربر کلیک کرده ، یا آدرس سایتی که بهت میدم رو با مرورگر باز کن یا یه پیغام Toast نشون بده . میایم و از دستور شرطی When استفاده میکنیم : 

توی کدهای بالا و خط هشتم ، میتونید ببینید که چه جوری میتونیم یه آدرس url رو توی کاتلین توسط مرورگر باز کنیم . 

ما اگه برنامه مون رو با همین کدها اجرا کنیم ، برنامه اجرا میشه و اگه روی علامت سه نقطه ، که توی این آموزش نقش منو رو داره ، کلیک کنیم ، دو تا گزینه پاپ آپ هم واسمون نشون داده میشه ، ولی شـِــــت ! آیکن هایی که میخواستیم رو نشون نمیده کنارشون . پس میام از یه دستور Try catch استفاده میکنیم و کد کلاس کاتلین رو کامل میکنیم اینجوری : 

توی کدهای بالا و خط ۵۱ رو دقت کنید . ما حتما باید کد popupMenu.show رو توی قسمت finally تعریف کنیم .

حالا اگه برنامه مون رو اجرا کنیم همونجوری هست که خودموم دوس داشتیم  : 

سورس رو هم میتونید دانلود کنید : 

دانلود سورس

ساخت پاپ آپ با کاتلین به همراه آیکن

مجتبی صابری


همه عشقم برنامه نویسی هست | t.me/developer9 | t.me/kotlin9


پیمایش نوشته


پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *