آموزش جستجو در ListView

آموزش جستجو در ListView
۱۲ اردیبهشت ۹۳

آموزش جستجو در ListView – برنامه نویسی اندروید


در این درس، نحوه ایجاد کلاس SearchView برای جستجو در ListView همراه با قابلیت صافی کردن اجزای ListView را آموزش می دهم. ابتدا یک برنامه جدید با نامی دلخواه ایجاد کنید. در لایوت اصلی برنامه (یا هر لایوتی که می خواهید به آن قابلیت جستجو اضافه کنید) یک SearchView و یک ListView اضافه می کنیم:

نکته مهم: برای استفاده از کلاس SearchView باید از API 11 استفاده کنید (هنگام ایجاد برنامه در ایکلیپس، Minimum Recuired SDK باید حداقل API 11 باشد).

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

 ما یک اکتیوتی دیگر هم داریم که در این کلاس، آرایه ای از نوع رشته (String) در آن تعریف می کنیم و کلماتی را به آن برای جستجو شدن، اضافه می کنیم. این کلاس به صورت زیر است:

البته شما می توانید کلمات کمتری به آن اضافه کنید.

 

آموزش جستجو در ListView - برنامه نویسی اندروید

آموزش برنامه نویسی پخش کننده موزیک برای اندروید


در این آموزش از سری برنامه نویسی اندروید، نحوه ساختن یک پخش کننده موزیک برای سیستم عامل اندروید را آموزش می دهم. در این برنامه شما یاد می گیرید که موزیک های موجود در گوشی (در یک مسیر خاص) را به لیست موزیک ها در برنامه اضافه کنید و سپس آنها را پخش کنید. می توانید سورس این پروژه را در پایان آموزش دانلود کنید.

ابتدا یک پروژه جدید ایجاد کنید. می توانید از تصویر زیر به عنوان لوگوی برنامه استفاده کنید:

آموزش طراحی و برنامه نویسی موزیک پلیر برای اندروید

یک لایوت جدید با نام song_item.xml ایجاد کنید. برای این منظور، ابتدا روی کلید زیر

آموزش طراحی و برنامه نویسی موزیک پلیر برای اندروید در نوار ابزار ایکلیپس کلیک کنید تا پنجره زیر باز شود:

آموزش طراحی و برنامه نویسی موزیک پلیر برای اندروید

در پنجره بالا، در قسمت File ، نام این لایوت یعنی song_item را وارد کنید و در بخش Root Element گزینه TextView را انتخاب کرده و Finish را بزنید.

یک لایه با کدهای زیر برای شما ایجاد می شود:

آن را به صورت زیر تغییر دهید:

 

بعد از اینکه فایل بالا را ذخیره کردید، آن را ببندید و فایل activity_main.xml در پوشه layout را باز کنید. ما می خواهیم به activity_main.xml یک ListView برای نمایش لیست موزیک ها و یک دکمه برای توقف پخش موزیک اضافه کنیم (ما در این آموزش به جای دکمه یا button از ImageButton استفاده می کنیم).

ListView و ImageButton را به صورت زیر به activity_main.xml اضافه کنید:

آموزش طراحی و برنامه نویسی موزیک پلیر برای اندروید

کدهای آن به صورت زیر هستند:

 ما در اینجا یک آیکن دکمه به ImageButton اضافه کرده ایم. برای اضافه کردن این آیکن (تصویر) به پروژه، ابتدا پوشه ای با نام drawable در پوشه res ایجاد می کنیم. سپس با کشیدن و رها کردن، تصویر را از کامپیوتر درون پوشه drawable قرار می دهیم.

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

آموزش طراحی و برنامه نویسی موزیک پلیر برای اندروید

تا اینجا کار ما با activity_main.xml تمام شده و می توانید آن را ذخیره کنید.

در این مرحله، فایل MainActivity.java را باز می کنیم. اولین کاری که می کنیم این است که خط زیر را پیدا کرده

و آن را به صورت زیر تغییر می دهیم:

 سپس موس را روی ListActivity نگه داشته و گزینه Import ‘ListActivity’ (android.app) را انتخاب کنید تا خطاها برطرف شوند.

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

 دستورات بالا رویدادی که بعد از کلیک شدن روی دکمه “توقف” رخ می دهد را تعریف می کند. البته ما هنوز کار که باید با کلیک روی این دکمه انجام شود را تعریف نکرده ایم.

خوب! حالا چند متغیر از نوع های مختلف در خارج از onCreate تعریف می کنیم:

 

سطر اول مسیر کارت حافظه را مشخص می کند.

سطر دوم هم آرایه ای برای ذخیره لیست موزیک های موجود در کارت حافظه است.

سطر سوم هم متغیری با نام mp از نوع MediaPlayer تعریف می کند.

نکته بسیار مهم: شما هر آدرسی را که به جای /mnt/sdcard/ وارد کنید، تنها موزیک های موجود در همان مسیر به لیست برنامه اضافه می شوند. ما می خواهیم موزیک های موجود در مسیر /mnt/sdcard/ خوانده شوند، اگر هیچ موزیکی در این مسیر وجود نداشته باشد، چیزی به لیست اضافه نمی شود و با صفحه خالی روبرو می شوید.

حالا دستور زیر را

در میان دستورات زیر وارد کنید:

یعنی به صورت زیر:

در مرحله بعد، ما نیاز به یک متد برای بروزرسانی لیست پخش داریم. نام این متد را updatePlayList می گذاریم. دستور زیر را به کدهای قبل اضافه کنید:

و این متد را به صورت زیر تعریف می کنیم:

قبل از نوشتن متد بالا، باید یک کلاس برای گرفتن فایل های با پسوند mp3 ایجاد کنیم. این کلاس را به صورت زیر تعریف می کنیم:

حالا متد updatePlayList را به صورت زیر تعریف می کنیم:

 این متد فایل های با پسوند mp3 را از کارت حافظه می گیرد و آنها را به لیست موزیک های برنامه اضافه می کند.

در مرحله بعد، می خواهیم متد onListItemClick را به برنامه اضافه کنیم. اگر این متد به برنامه اضافه شود، وقتی روی لیست موزیک ها کلیک می شود، موزیک ها پخش نمی شوند. در واقع این متد به برنامه می گوید که موزیک کلیک شده را پخش کند.

متد onListItemClick را بعد از متد onCreate به صورت زیر تعریف می کنیم:

 کل اکتویتی MainActivity.java به صورت زیر خواهد بود:

 

برنامه ما بعد از اجرا:

آموزش طراحی و برنامه نویسی موزیک پلیر برای اندروید


سورس پروژه:

دانلود

ساختن ماشین حساب اندرویدی در ایکلیپس


چند ماهی از راه اندازی سایت اندرویدونه می گذرد که تصمیم گرفتم نحوه برنامه نویسی برای سیستم عامل پرطرفدار اندروید را به کاربران سایت آموزش دهم. در این آموزش ها سعی من بر این است که آموزش ها به صورت پروژه محور و به ساده ترین روش ممکن باشد، تا هم خواننده خسته نشود و هم در انتهای کار برنامه ای کاربردی ایجاد کند. البته ممکن است بعضی آموزش ها پروژه محور نباشد و تنها یک خاصیت آموزش داده شود.

در اولین آموزش، به شما نحوه ایجاد یک ماشین حساب ساده اندرویدی را از صفر آموزش خواهم داد. برای ایجاد ماشین حساب، ابتدا یک پروژه جدید و با نام دلخواه ایجاد می کنیم. ما نام این پروژه را Calculator می گذاریم:

آموزش ساختن یک ماشین حساب برای اندروید

در مرحله بعد می توانید آیکن برنامه را به صورت متن یا تصویر تغییر دهید:

آموزش ساختن یک ماشین حساب برای اندروید

بعد از انتخاب آیکن، کافی است next کرده و در آخر finish را بزنید تا برنامه شما ایجاد شود.

بعد از ایجاد برنامه، اولین کاری که می کنیم، اضافه کردن نوشته هایی به فایل strings.xml است که قرار است روی دکمه های ماشین حساب اضاف شوند. فایل strings.xml در مسیر res/values قرار دارد. آن را به صورت زیر تغییر دهید:

 

حالا باید لایوت اصلی برنامه (با نام calculator.xml) را تغییر دهیم. ما به این فایل تعدادی دکمه، برای نمایش اعداد ۰ تا ۹ و عملگرهای + – * / = و نیز دکمه ای برای پاک کردن اعداد درون ماشین حساب اضافه می کنیم:

ما در کد بالا یک EditText برای وارد کردن اعداد قرار دادیم و تعدادی دکمه برای عملگرهای جمع، تفریق، ضرب و تقسیم، اعداد و نیز کلیدهای مساوی و C که برای پاک کردن EditText استفاده می شود.

کدهای شما باید چیزی مانند تصویر زیر باشند:

آموزش ساختن یک ماشین حساب برای اندروید

حالا به سراغ کلاس (یا اکتیویتی) اصلی برنامه، یعنی Calculator.java می رویم. ابتدا کدها را مرحله به مرحله توضیح داده و بعد تمامی دستورات را یکجا می آورم.

ابتدا چند متغیر تعریف می کنیم. دقت داشته باشید که این متغیر باید خارج از کلاس onCreate تعریف شوند تا در تمام کلاس در دسترس باشند:

ما در اینجا در سطر اول، متغیرهایی از نوع Button تعریف کرده ایم. یعنی در واقع دکمه های ماشین حساب را تعریف کرده ایم. سطر سوم یک EditText، سطر سوم و چهارم متغیرهایی صحیح (int) و سطر آخر یک متغیر رشته ای (String) تعریف می کند.

حالا هر یک از متغیرهای بالا را به شیء مربوطه در لایوت مرتبط می کنیم:

برای مثال دستور

 دکمه one در لایوت calculator.xml را به متغیر one (که از نوع Button است) اختصاص می دهد.

حالا می خواهیم به اندروید بگوییم وقتی روی دکمه ای کلیک می شود، چه عملی انجام دهد. برای این کار چند بلوک کد داریم. ابتدا در try … catch تابع setOnClickListener را برای هر یک از دکمه ها تعریف می کنیم:

 

در مرحله بعد، تابع operation را به صورت زیر تعریف می کنیم. این تابع نحوه کارکرد هر یک از عملگرهای + – * / را مشخص می کند. دقت داشته باشید که این تابع باید خارج از onCreate نوشته شود:

برای مثال دستورات

 می گویند که اگر عملگر برابر با + بود، آنگاه متن موجود در EditText موسوم به disp را گرفته و ابتدا آنرا تبدیل به رشته و سپس تبدیل عدد صحیح کن و در آخر در متغیر صحیح op2 قرار بده. سطر سوم هم disp را خالی از متن می کند. سطر چهارم مقدار op2 را با مقدار op1 جمع می کند و در op1 قرار می دهد. در سطر آخر نیز، مقدار موجود در op1 را به رشته تبدیل می کند و در disp قرار می دهد.

حالا توابع onClick را به صورت زیر تعریف می کنیم:

 

قطعه کد بالا، رویداد onClick را برای همه دکمه های ما تعریف می کند. دقت داشته باشید که ما از switch استفاده کرده ایم. برای مثال دستورات

 

معنی هر سطر و کاری که انجام می دهد:

سطر ۱: در صورتی دکمه one فشرده شود،

سطر ۲: اگر متغیر op2 برابر با ۰ باشد،

سطر ۳: op2 را برابر با صفر قرار بده.

سطر ۴: disp را خالی کن.

سطر ۶: متن مربوط به one را بگیر و در متغیر str ذخیره کن.

سطر ۷: متن str را در disp نشان بده.

 

دکمه Cancel یا Clear:

اگر این دکمه فشرده شود، ابتدا ۲ متغیر صحیح را برابر با صفر می کند، سپس disp را خالی از متن کرده و متن کم رنگ Perform Operation 🙂 را در آن می گذارد.

 

دکمه جمع:

اگر دکمه + فشرده شود، متغیر optr را برابر با + قرار می دهد. آنگاه اگر، op1 برابر با ۰ باشد، این ۰ را تبدیل به رشته کرده و در disp قرار میدهد. اگر op2 برابر با ۰ باشد، و در آخر ۲ متغیر را جمع کرده و در disp نمایش می دهد.

بقیه عملگرها نیز به همین صورت هستند.

 

ماشین حساب نهایی ما می تواند چیزی شبیه زیر باشد:

آموزش ساختن یک ماشین حساب برای اندروید