آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نمایش پیامک ها درلیست ویو

SMS
سینا  5 سال پیش  5 سال پیش
0 0

سلام. 

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

ممنون 

0 0
منظورم اینه مثلا از شماره 77777 هرچی پیام اومده تو لیست ویو نیاد فقط آخرین پیام از این شماره تو لیست ویو اصلی باشه و بعد از کلیک بقیه پیام های رد و بدل شده نمایش داده بشه (5 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
S.A.M  5 سال پیش
+1 0

این کدی که من استفاده کردم برای کاری که میخوای انجام بدی 

 Uri uriInbox = Uri.parse("content://sms/inbox");

Cursor inbox = getContentResolver().query(uriInbox, null, "address IS NOT NULL) GROUP BY (thread_id", null, null); // 2nd null = "address IS NOT NULL) GROUP BY (address"
Uri uriSent = Uri.parse("content://sms/sent");
Cursor sent = getContentResolver().query(uriSent, null, "address IS NOT NULL) GROUP BY (thread_id", null, null); // 2nd null = "address IS NOT NULL) GROUP BY (address"
Cursor c = new MergeCursor(new Cursor[]{inbox,sent}); // Attaching inbox and sent sms


if (c.moveToFirst()) {
for (int i = 0; i < c.getCount(); i++) {
String name = null;
String phone = "";
String _id = c.getString(c.getColumnIndexOrThrow("_id"));
String thread_id = c.getString(c.getColumnIndexOrThrow("thread_id"));
String msg = c.getString(c.getColumnIndexOrThrow("body"));
String type = c.getString(c.getColumnIndexOrThrow("type"));
String timestamp = c.getString(c.getColumnIndexOrThrow("date"));
phone = c.getString(c.getColumnIndexOrThrow("address"));



name = CacheUtils.readFile(thread_id);
if(name == null)
{
name = Function.getContactbyPhoneNumber(getApplicationContext(), c.getString(c.getColumnIndexOrThrow("address")));
CacheUtils.writeFile(thread_id, name);
}


smsList.add(Function.mappingInbox(_id, thread_id, name, phone, msg, type, timestamp, Function.converToTime(timestamp)));
c.moveToNext();
}
}

یه توضیح بهت بدم

.query(uriInbox, null, "address IS NOT NULL) GROUP BY (thread_id", null, null);

اینجا که این کد رو نوشته برای اینه که کوئری دریافت پیامک ها رو بسازه
و اگه کار با دیتابیس رو بلد باشی اینجا تمامی فیلد ها رو بر اساس thread_id گروپ کرده که همون id شماره ها توی دیتابیس خود اندروید هست 

این کار رو که انجام البته باید یه کلاس مدل از پیامک ها بسازی و فیلدهایی که داره رو توش تعریف کنی 
بعد Arraylist از همون کلاس مدل میسازی و به ازای هر کدوم از این ها لیست رو پر میکنی و بعدم میدی به لیست ویو 

به همین سادگی

0 0
ممنونم از راهنماییتون. (5 سال پیش)

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