در این سوال از شما میخواهیم فایل پایه را به گونهای تکمیل کنید که با وارد کردن آدرس یک فایل در EditText
موجود در صفحه، پس از لمس دکمه Download
فایل در آدرس مشخصی دانلود شود. پروژه پایه را از اینجا دانلود کنید.
نمای کلی پروژه پایه:
فایلهای دانلودی باید در فولدر DCIM
موجود در حافظه خارجی دستگاه ذخیره شود.
isDownloadCompleted
موجود در فایل JudgeUtil
را برابر با false
قرار دهید و پس از اتمام دانلود، مقدار آن را true
کنید.zip
دقت کنید که پوشههای build
در این فایل وجود نداشته باشند.ساختار بخشی از فایل پایه بصورت زیر است. میتوانید فایلهایی به پوشه java
(یا زیر پوشههای آن) اضافه کنید. همچنین مجازید به فایلهایی که با علامت (---->) مشخص شدهاند کدهای خودتان را اضافه کنید (اما مجاز به تغییر یا حذف کدهای موجود نیستید). درنهایت محتویات پوشه app
را در قالب یک فایل فشرده ارسال کنید.
زهرا که معلم زبان است با دیدن اینکه شاگردانش یک سری از کلمات را فراموش میکنند تصمیم گرفت برنامهای طراحی کند تا بتواند به آنها در یادگیری کلمات کمک کند؛ هذف او از طراحی این برنامه این است که شاگردانش کلماتی را که همیشه فراموش میکنند، در آن ذخیره کنند تا به هنگام نیاز به معنی آن دسترسی داشته باشند، اما بدلیل نداشتن دانش برنامه نویسی اندروید از شما کمک میخواهد.
فایل پایه را از اینجا دانلود کنید
تعریف پروژه: شمای کلی برنامه مانند شکل بالا است و عملکرد آن مانند یک فرهنگ لغت فارسی-انگلیسی است، با این تفاوت که لیست لغات توسط کاربر ویرایش میشود. در صفحه ابتدایی برنامه، لغت انگلیسی را در EditText
با متن راهنمای word
و ترجمه آن را در EditText
با متن راهنمای defunition
بنویسید.کلات و معنای آنها باید در یک دیتابیس sqLite
ذخیره شوند.
ADD
، فقط درصورتی که کلمه در دیتابیس موجود نباشد به آن اضافه میشود. (هردو فیلد مربوط به لغت و ترجمه باید پر شوند)Delete
، فقط درصورتی که کلمه در دیتابیس موجود باشد از آن حذف میشود. (پر کردن فیلد word
کافی است)Update
درصورت وجود کلمه، معنای آن با معنای جدید جایگزین میشود. (هردو فیلد مربوط به لغت و ترجمه باید پر شوند)View All
وارد Activity
به نام DictionaryPage
میشویم (شکل سمت چپ) که در آن هر لغت به همراه معنای متناظر با آن به ترتیب جدید به قدیم در لیست نمایش داده میشود.search
معنای لغت نوشته شده در EditText
با متن راهنمای search_word
جستجو میشود و درصورت وجود لغت، معنای آن در TextView
پایین صفحه نمایش داده میشود و درصورت عدم وجود لغت در دیتابیس، عبارت word doesn't exist
در آن نمایش داده میشود.Quiz
درصورتی که تعداد لغات موجود در دیتابی کمتر از چهار (۴) لغت باشد، هیچ اتفاقی نمیافتد و در صورتی که چهار کلمه یا بیشتر در دیتابیس موجود باشد، برنامه وارد صفحه وارد QuizActivity
میشود. در این صفحه (همانطور که در gif
موجود در صورت سوال میبینید) یک سوال چهارگزینهای از میان لغات موجود در دیتابیس طرح میشود. به این صورت که بطور تصادفی یک کلمه انتخاب میشود و در TextView
با آیدی quiz_question
موجود در بالای صفحه نمایش دادهمیشود و معنای آن کلمه به همراه معنای سه کلمه دیگر (که این معناها هم بصورت تصادفی انتخاب شدهاند) با یک ترتیب تصادفی بر روی چهار Button
موجود در میانه صفحه نمایش داده میشوند. کاربر برای پاسخگویی به هر سوال تنها هشت (۸) ثانیه زمان دارد. درصورتی که در این زمان کاربر هیچ گزینهای را انتخاب نکند، سوال جدیدی ایجاد میشود و نمایش داده میشود. اگر قبل از اتمام زمان پاسخگویی به سوال، کاربر گزینه درست را انتخاب کند، در (۱۰) امتیاز به امتیاز فعلی او اضافه میشود (این امتیاز در پایین صفحه در TextView
با آیدی current_score
نمایش داده میشود). درصورت انتخاب گزینه غلط نیز بدون تغییر در امتیاز، سوال جدیدی نمایش داده میشود.نکات مهم در پیادهسازی دیتابیس:
wordlist.db
و در جدول list
ذخیره میشوند./data/data
) ذخیره کنید.zip
ارسالی شما، بیشتر از حد مجاز بود، پوشه(های) build
را در فایل ارسالی پاک کنید.activity_main.xml
، dictionary_page.xml
و list_item.xml
را تغییر ندهید (حذف نکنید).Quiz
باید به گونهای باشد که دو سوال یکسان پشتسر هم نمایشداده نشوند. (منظور از دو سوال یکسان دو سوال با کلمه انگلیسی یکسان و گزینههای یکسان و ترتیب یکسان در گزینهها است)WordListViewHolder.java
و متغیرهای عضو این کلاس متناسب با نام آنها استفاده کنید. اعمال هرگونه تغییر در این فایل و فایلهای دیگر پروژه که دارای پسوند java
هستند بلامانع است اما از تغییر نام یا حذف کلاسها، توابع و متغیرهای موجود در فایل پایه خودداری کنید.ساختار بخشی از فایل پایه بصورت زیر است. میتوانید فایلهایی به پوشه java
(یا زیر پوشههای آن) اضافه کنید. همچنین مجازید به فایلهایی که با علامت (---->) مشخص شدهاند کدهای خودتان را اضافه کنید (اما مجاز به تغییر یا حذف کدهای موجود نیستید). درنهایت محتویات پوشه app
را در قالب یک فایل فشرده ارسال کنید.
علی و محمد دو دوست هستند که در یک ساختمان زندگی میکنند. آنها میخواهند آخر شب ها با هم چت کنند و تصمیم گرفتهاند راهی پیدا کنند که بتوانند به طور مستقیم به هم متصل شوند و پیام ارسال کنند. برای این کار، آنها به کمک شما نیاز دارند تا در نوشتن برنامه پیامرسان محلی کمکشان کنید.
فایل پروژه اولیه را از اینجا دریافت کنید.
ابتدا دو کاربر باید به یک wifi
متصل شوند، سپس یکی از آن دو باید در صفحه اصلی گزینه connect to me
و دیگری گزینه connect to others
را انتخاب کند.
با انتخاب گزینه connect to me
دستگاه اندرویدی مانند یک سرور برای چت عمل میکند و کاربر به صفحه ServerActivity
انتقال داده میشود. در این صفحه ip
و port
ای که برای اتصال کاربر دوم درنظر گرفته شده، به ترتیب در TextView
با آیدی text_ip
و text_port
نمایش داده میشوند.
با انتخاب گزینه connect to others
کاربر به صفحه ClientActivity
منتقل میشود. در این صفحه ip
و port
نمایش داده شده توسط دستگاه اول، به ترتیب در EditText
با آیدی edit_text_ip
و edit_text_port
وارد میشوند.
پس از وارد کردن این اطلاعات، با لمس دکمه connect
به محض برقراری ارتباط، هر دو دستگاه وارد صفحه MessageActivity
میشوند که همان صفحه مخصوص چت است.
در صفحه چت با نوشتن متن مورد نظر درون EditText
و لمس دکمه send
در این صفحه، پیام برای کاربر دیگر ارسال میشود.
در صفحه چت، یک TextView
با آیدی text_message
نیز وجود دارد. این TextView
همواره آخرین پیامی که کاربر از دستگاه دیگر دریافت کرده را نمایش میدهد و تا قبل از دریافت اولین پیام نیز هیچ متنی را نمایش نمیدهد.
نمونه پیام نمایش دادهشده در تلفن همراه:
نمونه فرمت پیام ارسالی در شبکه:
ServerActivity
فاقد هرگونه کاراکتر اضافه باشند زیرا عینا همین مقادیر در ClientActivity
وارد میشوند.zip
دقت کنید که پوشههای build
در این فایل وجود نداشته باشند.ساختار بخشی از فایل پایه بصورت زیر است. میتوانید فایلهایی به پوشه java
(یا زیر پوشههای آن) اضافه کنید. همچنین مجازید به فایلهایی که با علامت (---->) مشخص شدهاند کدهای خودتان را اضافه کنید (اما مجاز به تغییر یا حذف کدهای موجود نیستید). درنهایت محتویات پوشه app
را در قالب یک فایل فشرده ارسال کنید.
در این سوال از شما میخواهیم صف آهنگهای درحال پخش یک موزیک پلیر را پیادهسازی کنید. فایل پایه را از اینجا دانلود کنید.
شمای کلی پروژه نهایی بصورت زیر است:
شمای کلی پروژه نهایی مانند تصاویر بالا است و لیست کارهای شما برای تکمیل این پروژه به شرح زیر است:
نمایش لیست آهنگهای در صف پخش: برای سادهتر شدن این بخش، کافیست اطلاعات آهنگهای موجود در لیست پخش را از طریق فراخوانی تابع getMusicList
دریافت کنید. این تابع، عضو static
کلاس JudgeUtil
است.
امکان ایجاد تغییر در ترتیب آهنگها: با لمس آیکون سمت راست هر عضو لیست که بصورت دو خط افقی نمایش دادهمیشود امکان تغییر مکان آن عنصر در لیست از طریق کشیدن آن به محل دلخواه (drag
کردن) وجود دارد. دقت کنید برای این کار نیازی به لمس طولانی آیکون نیست و بهمحض لمس آیکون، امکان تغییر مکان آن وجود دارد. همچنین دقت کنید این امکان فقط برای آیکون گفتهشده فعال باشد تا امکان scroll
کردن لیست آهنگها ازبین نرود.
امکان حذف آهنگ از لیست پخش: با کشیدن هریک از آیتمهای لیست به طرف راست یا چپ، آن آیتم باید از لیست حذف شود.
zip
دقت کنید که پوشههای build
در این فایل وجود نداشته باشند.JudgeUtil
خودداری کنید.ساختار بخشی از فایل پایه بصورت زیر است. میتوانید فایلهایی به پوشه java
(یا زیر پوشههای آن) اضافه کنید. همچنین مجازید به فایلهایی که با علامت (---->) مشخص شدهاند کدهای خودتان را اضافه کنید (اما مجاز به تغییر یا حذف کدهای موجود نیستید). درنهایت محتویات پوشه app
را در قالب یک فایل فشرده ارسال کنید.