لیست ویو برنامه اس ام اس گوشی چگونه کار می کند
سلام
در برنامه ی اس ام اس گوشیهای اندروید یک لیست ویو داریم که کل پیامک ها نشان داده می شود .
1-اگر از شماره ای پیامی دریافت شود یک سطر به لیست ویو اضافه می شود .
2- اگر شخص قبلی دوباره پیام بفرستند سطر جدید ایجاد نمی شود بلکه پیامش + سایر پیام ها با کلیک روی سطر قبلی مشاهده می شود.
--همچنین سطر بروز شده (جدیدترین پیامک)در قبل از همه قرار می گیرد .
ساخت مورد دوم چگونه است ؟
از دوستان عزیز خواهشمندم در این زمینه راهنمایی فرمایند .
با تشکر
سلام
اگر بخوایم جدول پیامک های اندروید رو شبیه سازی کنیم ، احتمالا ستون های زیر رو داره
- شناسه (id)
- فرستنده (شماره تلفن + نام حتی احتمالا یک ارتباط با جدول مخاطب ها )
- متن پیام و...
- آخرین تاریخ بروز رسانی
پیام ها بر اساس شماره ی فرستنده گروه میشن ، و بر اساس زمان بروز رسانی مرتب میشن ، چیز خاصی نیست :)
احتمالا شما با دریافت پیامک مشکلی ندارید. (اگر هم دارید به آموزش مربوطه در ویدئوها رجوع کنید). چیزی که من از سوال شما فهمیدم اینطوری حل می شود. (که تقریبا بدیهی هم هست!)
1- پیامک های دریافتی را در یک دیتا بیس ذخیره می کنید. در دیتا بیس دو جدول ایجاد می کنید (این کار برای افزایش سرعت است وگرنه سیستم تک جدوله هم جواب می دهد.) یک جدول برای کل اس ام اس ها و یک جدول برای اس ام اس های اخیر2- برای هر پیامک در هر دو جدول تاریخ دریافت و ساعت و دقیقه دریافت هم لحاظ می کنید.
3- در هر دو جدول یک ستون هم برای شماره ارسال کننده ایجاد می کنید.
4- ایجاد ستونی هم در جدول اس ام اس برای خوانده شده و یا نشده توصیه می شود.
-سایر فیلدها به سلیقه و کاربری شما وابسته خواهد بود.
5- بعد از دریافت اس ام اس موارد فوق را در جدول ذخیره می کنید. به این صورت که بعد از دریافت پیامک کل اطلاعات مربوط به آن را در جدول اصلی ذخیره می کنید ولی برای ذخیره در جدول اس ام اس های اخیر قبلش چک می کنید که اگر به این شماره اس ام اس وجود داشت این اس ام اس جدید را به جای آن قبلی ذخیره کنید.
6- حالا برای خواندن اطلاعات به قرار زیر عمل کنید:
7- در لیست اولیه کافیه که اطلاعات را از جدول اس ام اس های اخیر بخونید و یک پیش نمایش از شماره ارسال کننده و بخشی از پیام نمایش دهید.
8- در لیست جزئی هم کافیه که اطلاعات را از جدول اصلی بخونید و بر اساس شماره ارسال کننده فیلتر کنید.
9- در هر دو حالت اس ام اس ها را بر اساس زمان دریافت سورت کنید.
- استفاده از یک جدول اصلا توصیه نمی شود چون هر بار باید کل اس ام اس ها را بخونید.
- موارد فوق به صورت حداقلی می باشند. با توجه به اصول پایگاه داده شما می توانید (و باید) جداول بیشتری را نیز ایجاد و استفاده کنید.
- به هر حال این یک از صدها الگوریتم ممکن است.
در دریافت و ذخیره و بازخوانی پیام ها مشکلی نیست ، هر چه کرد این نمایش کرد !
برای شروع من از لیست ویویی که استاد آموزش داده استفاده کردم لیست ویو اصلی:

همانطور که می بینید به ازای هر پیام جدید از یک شماره یک سطر ایجاد می شود . چه کار کنم اگر قبلا از یک شماره اس ام اس آمده بود سطر جدید ایجاد نشود ؟
روش های زیادی هست...
روش اول: اینه که در دستور sql از DISTINCT استفاده کنید و بگید اونایی که شماره هاشون تکراریه رو به لیست اضافه نکن.
روش دوم : شما باید 2 تا Table داشته باشید، (تعداد Table ها باید بررسی بشه و من با توجه به دانسته هام از برنامه تون حد اقل رو گفتم) که یکی شامل اس ام اس ها و یکی شامل کانتکت ها که شامل نام، شماره و ... هست. شما باید توی Table اس ام اس هاتون contact_id رو داشته باشید که بشه پل ارتباطی تون، حالا برای گرفتن لیست میتونید از لیست کانتکت ها شماره و ... رو بگیرید و آخرین آیتم از لیست اس ام اس ها که contact_id اون برابر با contact_id در contacts رو در کنار شماره نمایش بدید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .