آموزش فیلتر محصولات با استفاده از Json و Php در اندروید

امتیاز 4.00 ( 1 رای )

سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش فیلتر محصولات با استفاده از Json و Php در اندرویدمی پردازیم در آموزش های قبلی با Json آشنا شدیم در این آموزش یاد خواهید گرفت تا چگونه فیلتر را انجام دهید این آموزش بیشتر بروی Functionality کار خواهد کرد در ادامه می توانید پیش نمایشی از Filter در برنامه نویسی اندروید را مشاهده کنید.
 

 
در این آموزش ما ابتدا Json را از سرور دریافت می کنیم سپس می توانیم آن را در برنامه فیلتر کنیم.
محتوا :

  • PHP
  • JSON
  • MYSQL
  • ANDROID

ابتدا ما یکسری داده در سمت وب برای خودمان درست می کنیم همانند زیر شما باید یک Table درست کنید (در ادامه لینک دانلود Table را قرار میدهم تا در PhpMyadmin آن را import کنید)
 

لینک دانلود Table 
ما در آخر آموزش براساس brand , price فیلتر را انجام خواهیم داد.
یک فایل Php به نام Constants.php ایجاد کنید و کدهای زیر را در آن قرار دهید این فایل اطلاعات مربوط به دیتابیس ما را نگه میدارد و هر وقت که بخواهیم از آن استفاده کنیم کافی است آن فایل Php را صدا بزنیم.

در بالا اطالاعات مربوط به دیتابیسی که ساختید (از بالا به ترتیب نام کاربری که برای دیتابیس ساختید , رمز عبور مربوط به آن دیتابیس , نام دیتابیس)
یک فایل دیگر به نام DbConnect.php ایجاد کنید و کدهای زیر را در آن قرار دهید.

کد بالا عمل اتصال به دیتابیس را انجام میدهد (علت اینکه این فایل ها را به صورت جداگانه ایجاد می کنیم باعث میشه هرجا که خواستیم از این فایل ها استفاده کنیم و کد رو دیگه از اول ننویسیم)
یک فایل Php دیگر به نام DbOperation.php ایجاد کنید و کدهای زیر را در آن قرار دهید.

کد بالا عمل query را برای ما انجام خواهد داد.
یک فایل دیگر به نام getData.php ایجاد کنید و کدهای زیر را در آن قرار دهید.

 
 
کد بالا یک آرایه از Json ایجاد می کند و بر می گرداند ابتدا با استفاده از فایل قبلی query زده می شود سپس در یک آرایه قرار می گیرد و در آخر یه Json تبدیل می شود.
کد php به پایان رسید.
 
ابتدا باید کتاب خانه volley را به پروژه خود اضافه کنید.
برای اینکار وارد فایل Build.gradle شده و خط زیر را اضافه کنید.

پروژه را sync کنید.
وارد فایل AndroidManifest.xml شده و دسترسی زیر را اضافه کنید.

ابتدا در layout خود (در اینجا نام آن activity_main.xml است ) کدهای زیر را قرار دهید.

در بالا چهار دکمه برای انجام عملیات وجود دارد.
یک layout دیگر به نام list_layout.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

کد بالا layout مربوط به آیتم هایی است که بعد از پارس Json ایجاد می شوند. (آیتم های ListView هستند)
یک کلاس Getter / Setter داریم یک فایل جاوا به نام Laptop ایجاد کنید و کدهای زیر را در آن قرار دهید.

کد بالا همان کلاس POJO یا Getter / Setter است.
برای اینکه دیتا ها در ListView تنظیم شوند باید یک آداپتور سفارشی بنویسیم.
پس یک کلاس جاوا به نام LaptopAdapter.java ایجاد کرده و کدهای زیر را در آن قرار دهید.
 

کد بالا بعد از اینکه json پارس شد مقادیر را به این اداپتور پاس میدهد سپس داده ها در layout مربوط به آنها قرار می گیرد.
یک layout دیگر به نام activity_unsorted.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

 
یک فایل جاوا به نام UnsortedActivity.java ایجاد کنید این اکتیویتی مربوط به فایل بالا است. نتیجه مربوط به فیلتر در این اکتیویتی نمایش داده می شود (داده ها در این اکتیویتی به صورت sort نشده یا فیلتر نشده نمایش داده خواهند شد).

کد بالا با استفاده از Json داده ها را که از اکتیویتی قبل در SharedPreferences ذخیره شده است fetch می کند سپس آن را پارس کرده در آداپتور set می کند نحوه کار آداپتور هم به این شکل است که سه ورودی می گیرد

  • Instance آن اکتیویتی
  • Layout کاستومی که خودمان طراحی کردیم
  • یک List از داده ها

یک layout دیگر به نام activity_sortedbybrand.xml ایجاد کنید و کدهای زیر را در آن قرار دهید.

در layout بالا فقط یک list قرار گرفته تا داده ها در آن لود شوند .
باید یک اکتیویتی به نام Sortedbybrand.java ایجاد کنید این اکتیویتی مربوط به layout بالا می شود.(شبیه به کد های قبلی است یعنی دقیقا همان است فقط بخشی از آن تغییر خواهد کرد چون باید فیلتر انجام شود.)

همانند قبل داده از SharedPreferences دریافت می شوند سپس آن را به JsonArray تبدیل می کنیم و آن را پارس می کنیم بخش مهم استفاده از کلاس Collections برای انجام عمل sort است خود این کلاس شامل متودی به نام sort است که انجام عمل فیلتر را برای ما آسان می کند در اینجا ما براساس brand عمل فیلتر را انجام میدهیم.
یک layout دیگر به نام activity_sortedbyprice ایجاد کرده و کدهای زیر را در آن قرار دهید.

در بالا هم مثل قبل یک ListView داریم.
یک اکتیویتی دیگر به نام Sortedbyprice.java ایجاد کرده و کدهای زیر را در آن قرار دهید.

در اینجا هم دقیقا همانند قبل فیلتر انجام می شود فقط کلید آن براساس price یا قیمت است  و در آخر بعد از فیلتر شدن یک بار دیگر داده به Model ما پاس داده می شود سپس به آداپتور فرستاده می شود.
 
برای اینکه نتیجه را ببینید باید یک layout به نام activity_filterresults.xml ایجاد کنید و کدهای زیر را در آن قرار دهید.

در بالا فقط یک ListView داریم که نتیجه فیلتر انتخابی در آن نمیاش داده می شود.
یک اکتیویتی به نام Filterresults.java ایجاد کرده و کدهای زیر را در آن قرار دهید.

کد بالا فیلتر را برای شما انجام خواهد داد و نتیجه به نمایش در خواهد آمد.
و در نهایت کد مربوط به MainActivity.java
 
در اکتیویتی اصلی یا همان MainActivity.java کد های زیر را را قرار دهید.

ابتدا شما باید آدرس مربوط به فایل getData.php را در متغیر URL قرار دهید. در ابتدای کد ما دکمه ها را find کردیم سپس برای آنها کلیک تعریف کردیم یک void به نام getLaptops داریم که داده ها را کامل از دیتابیس توسط فایل php دریافت کرده و در SharedPreferences ذخیره می کند و بعدا همانطور که در بالا توضیح داده از آن در هر اکتیویتی استفاده می کنیم.
 
این آموزش هم به پایان رسید.
 
موفق و پیروز باشید.
 
 

مطالعه بیشتر