ورود

View Full Version : کمک در درک یک کد



fshb_ 1370
پنج شنبه 12 اردیبهشت 1392, 10:02 صبح
سلام دوستان.
دوباره من و مشکلات SQLite :دی

من این toturial سایت vogella رو خوندم و در متد getContacts گیر کردم. اصلا متوجه نمیشم که IN_VISIBLE_GROUP چی کار میکنه و چرا برابر 1 اونو قرار داده.
ممنون میشم این متد برام یکی توضیح بده(به زبان ساده )

private Cursor getContacts() {
// Run query
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] { ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME };
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '"
+ ("1") + "'";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC";


return managedQuery(uri, projection, selection, selectionArgs,
sortOrder);
}
مرسی دوستان

darkenerboy
پنج شنبه 12 اردیبهشت 1392, 10:23 صبح
برای گرفتن مخاطبین باید از یک کانتنت استفاده کنی که ادرسش
ContactsContract.Contacts.CONTENT_URI
هستش
و برای گرفتن query هم باید از getContentResolver() استفاده کنی
کد زیر مخاطبین رو در یک متغییر از نوع cursor میریزه
Cursor c = getContentResolver().query(ContactsContract.Common DataKinds.Phone.CONTENT_URI, null, null , null, null);
در کد بالا
null اول فیلد هایی هستش که میخوای بگیری
null دوم شرط رو مینویسی
null اخر هم نحوه مرتب سازی یا تعداد سطر هایی که میخوای دریافت کنی رو مینویسی

موفق باشی

Modernidea
شنبه 14 اردیبهشت 1392, 11:45 صبح
اصلا متوجه نمیشم که IN_VISIBLE_GROUP چی کار میکنه و چرا برابر 1 اونو قرار داده. سلام
اگر اشتباه نکنم شما باید اینجوری به مسئله نگاه کنید که جدولی دارید به نام Contacts که یکسری فلید ها داره که یکی از فیلدها IN_VISIBLE_GROUP هست و مقدار 0 یا 1 میگره.
در این Query برنامه نویس خواسته تمام رکورد هایی از جدول Contacts را انتخاب کنه که مقدار IN_VISIBLE_GROUP آن برابر با 1 باشه.

موفق باشید.

fshb_ 1370
یک شنبه 15 اردیبهشت 1392, 09:18 صبح
مرسی Modernidea عزیز
اما این فیلد IN_VISIBLE_GROUP توش چی ذخیره شده؟ و این مقدار 0 یا 1 اش برای چیه؟

Modernidea
یک شنبه 15 اردیبهشت 1392, 22:59 عصر
خواهش میکنم!

من نمیدانم قصد شما یادگیری چگونگی پیاده سازی دیتابیس در اندروید است یا تحلیل جداول و بانکهای مرتبط با Contact؟
اگر اشتباه نکنم طبق عنوانی که برای تاپیک تعیین کردید قصد تحلیل کد مربوطه را دارید. با این حساب نباید برایتان مهم باشد که فلان فیلد چرا فلان مقدار را میگیرد. فرض را بر این بگیرید که اگر فیلد IN_VISIBLE_GROUP مقدار "0" را داشته باشد، مخاطب مورد نظر به عنوان مخاطبان قابل نمایش و اگر "1" باشد به عنوان مخاطبان پنهان از دید کاربر به حساب می آیند.

عذر میخوام که پرچونگی میکنم اما اگر قصد فهم کدی را دارید همینقدر که متوجه شدید فلان عمل برای چیست و چگونه قابل پیاده سازی است، آن را یاد بگیرید و از آن رد بشوید. اگر زیاد به جزئیات وارد شوید هم وقتتان میگذرد و هم مسئله خسته کننده میشود. (توجه کنید این نظر من است پس شما بهترین راه را انتخاب کنید!)

موفق باشید.