تو این قسمت یه فیلد به کلاس مدل اضافه میکنم، به این صورت:
تو این قسمت یه فیلد به کلاس مدل اضافه میکنم، به این صورت:
دو تا اصطلاح زیر در GSON وجود داره:
serialize: تبدیل شی جاوا به JSON
deserialize: تبدیل JSON به شی جاوا
از کتابخونه GSON برای map کردن یک شی جاوایی به JSON و برعکس (یعنی پارس کردن JSON) استفاده میشه.
این کتابخونه مخصوصا در پارس کردن jsonهایی با اشیای تو در تو (nested) کارها رو خیلی ساده میکنه و استفاده ازش توصیه میشه.
از GSON علاوه بر اندروید، در جاوا هم میشه استفاده کرد.
برای ارسال آبجکت از یک اکتیویتی به اکتیویتی دیگر سه راه وجود دارد:
1. اینکه دونه دونه ویژگی هاش رو گت کنیم (البته اگر primitive باشن) و از طریق putExtra بفرستیم که روش جالبی نیست.
2. پیاده سازی اینترفیس serializable توسط کلاس مدل. این اینترفیس در جاوا تعریف شده و روش خوب و ساده ایه هست. فقط سرعتش کمه.
3. پیاده سازی اینترفیس Parceable توسط کلاس مدل. این API جز SDK اندروید هست و سرعت خیلی بیشتری نسبت به قبلی داره ولی پیاده سازیش یک مقدار پیچیده تره.
کتابخانه AudioRecordView یک Audio visualizer برای فایل های صوتی می باشد.
مقاله مدیوم برای آموزش استفاده از این کتابخانه
از این کتابخانه در اپ voice recorder استفاده کردم.
اینکه دات و اسلش در مسیر فایل ها در جاوا (و البته اندروید) چه معنی ای دارند همیشه درگیرم کرده!
در اندروید برای پلی کردن مدیا از کلاس MediaPlayer استفاده میشه. بدین صورت:
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(fileToPlay.getAbsolutePath());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
ممکنه بخواهیم آیتم های ریسایکلر ویو رو مرتب سازی کنیم. (مثلا توی اپ Voice Recorder فایل های ضبط شده برحسب تاریخ مرتب سازی شدن). برای این کار باید لیستی که به ریسایکلر ویو میدیم رو برحسب ویژگی مد نظرمون sort کنیم.
برای این کار کلاس model باید اینترفیس comparable یا comparator رو پیاده سازی کنه. این دو تا مثل هم هستن ولی تفاوت هایی دارن که در جدول زیر اومده: