آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

۱۱ مطلب با موضوع «پروژه محور :: پروژه هشتم» ثبت شده است

این پرمیشن های ران تایم دهن منو سرویس کرد :|

 

بعد از حدود یک سال تازه فهمیدم متد requestPermissions کل پرمیشن ها رو به صورت آرایه میگیره و پشت سر هم باکس های پرمیشن رو نشون میده. بعد از تموم شدن باکس ها، کال بک onRequestPermissionsResult فراخونی میشه و نتایج اکسپت شدن یا نشدن پرمیشن ها توی آرایه grantResult میاد.

 

با تلاش و کوشش فراوان :)) هلپر پرمیشن ها رو نوشتم. کد در gist

 

چرا سینگل تون ننوشتم؟ چون نمیشد! چرا؟ چون پرمیشن ها توی هر اکتیویتی اجرا میشن، یعنی لازمه هر جا لازم شد همون اکتیویتی (و نه کانتکس) رو بهش پاس بدم. بنابراین سینگل تون بودن بی معنیه.

 

لینک خوب استک اور فلو برای پرمیشن های ران تایم

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۳۲
میم دال

کلاس سینگل تون ارسال SMS

 

اینم زیاد پیچیده نیست. فقط لازمه متد init توی کلاس اپلیکیشن فراخونی بشه.

 

کد در gist

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۲۱
میم دال

کلاس سینگل تون SharedPreferences

 

قبلا در مورد آموزشش نوشتم. این API خیلی پر کاربرده و لازمه بهش مسلط باشم.

 

این API رو به صورت سینگل تون نوشتم: کد در gist

 

تنها نکتش اینه که باید متد init توی کلاس کاستوم اپلیکیشن فراخونی بشه. یعنی کانتکس اپلیکیشن بهش میدیم.

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۰۹
میم دال

این پروژه ساده ست و فقط اکتیویتی های ثبت نام و لاگین داره و هدفش اینه که بگه چجوری صفحه ثبت نام فقط یک بار نشون داده بشه.

 

تنها نکات این پروژه کلاس های سینگل تون و پرمیشن های ران تایم هست که در ادامه میگم.

 

نکته: برای اینکه فوکوس روی ادیت تکست مورد نظرمون باشه به صورت زیر مینویسیم:

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۰۵
میم دال

در حین اجرای پروژه دهم به یه ارور عجیبی برخوردم که بار آموزشی خوبی داشت.

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ تیر ۹۹ ، ۲۲:۵۲
میم دال

در این قسمت کد اسنک بار آورده شده.

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ خرداد ۹۹ ، ۲۰:۱۹
میم دال

کد جاوای قسمت آزمون سخت نبود. فقط روش حل تصحیح آزمون تستی رو توضیح میدم.

 

برای هر تکست ویوی که یک گزینه رو نشون میده یک لیسنر مینویسیم و بهش تگ متناظر با شماره گزینه رو اختصاص میدیم.

 

یک آرایه به اسم answerSheet ساخته و گزینه های درست رو به ترتیب توش میریزیم.

 

هر گزینه ای که کلیک شد تگش رو میگیریم و با عضو متناظر توی آرایه چک میکنیم، اگر درست بود یعنی پاسخ صحیح بوده و در غیر این صورت پاسخ اشتباه بوده.

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ خرداد ۹۹ ، ۲۰:۱۶
میم دال

حقیقتا سر طراحی لی لوت این صفحه برای ریسپانسیو بودنش دهنم سرویس شد :| مخصوصا سر چهار تا گزینش :|

 

1. 4 ضلع صفحه رو با گاید لاین به اندازه 1 درصد حاشیه گذاری کردم.

 

2. با اندازه های 10، 30، 86 درصد به چهار قسمت تبدیلش کردم.

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ خرداد ۹۹ ، ۱۹:۲۷
میم دال

صفحه منو فقط چهار تا دکمه داره. برای اینکه دکمه ها وضعیت خوبی داشته باشن از chain استفاده کردم و ارتفاع رو wrap قرار دادم.

استایل chain از نوع spread هست با مارجین 8dip.

دلیل مارجین اینه که توی ال سی دی های کوچیکتر مطمئن باشم دکمه ها از هم حداقل 8dip فاصله دارن.

میشد بجای wrap بهشون weight بدم. (البته باید ارتفاع رو 0dp قرار میدادم). ولی خوشگل نمیشد. دکمه ها تپل میشدن :(

برای width هم با percent مقدار 0.6 رو دادم.

 

 

 

کد جاوا:

 

تنها نکته ای که داشت قسمت "تماس با ما" هست که از اکشن ویو استفاده شده تا یک لینک تلگرام رو باز کنه.

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ خرداد ۹۹ ، ۱۹:۰۴
میم دال

کد ساخت تایمر با handler

 

این تایمر در ActionBar نمایش داده می شود. بنابراین نباید از استایل noActionBar استفاده کنیم.

 

 

استفاده از format specifier برای نمایش دو رقمی اعداد تک رقمی:

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ خرداد ۹۹ ، ۰۱:۱۸
میم دال