بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
ذخیره مخاطبین در لیست ویوو و استفاده از آنها [حل شد]
مدیریت گفتگو
پاسخها 3
تو استک سرچ زدم پیدا کردم برات
این متغیر قرار بده بصورت فیلد
static final int PICK_CONTACT=1;
اینو بزار تو آن کلیک لیستنر
Intent intent =newIntent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
اینم متد آن اکتیویتی ریزالت
@Override
publicvoid onActivityResult(int reqCode,int resultCode,Intent data){
super.onActivityResult(reqCode, resultCode, data);switch(reqCode){case(PICK_CONTACT):
if(resultCode ==Activity.RESULT_OK){Uri contactData = data.getData();
Cursor c = managedQuery(contactData,null,null,null,null);
if(c.moveToFirst()){String id =c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
String hasPhone =c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if(hasPhone.equalsIgnoreCase("1")){
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id,
null,null);
phones.moveToFirst();
cNumber = phones.getString(phones.getColumnIndex("data1"));
System.out.println("number is:"+cNumber);
}
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));}}break;}}
ادیتور سایت قاطی کرده بودمجبور شدم اسپیس بزنم بین خط ها
برای اضافه کردن تو لیست هم آموزش استاد در خصوص لیست ویو رو ببین اگه مشکلی بود درخدمتم
نظرات
این سوال رو دقیقا خودم توی استک پرسیده بودم..... اما این پیاده سازی انتخاب Multiple نداره و فقط 1 دونه کانتکت رو میشه انتخاب کرد....
خوب شما سوالتون رو واضح نپرسیدید من این برداشتو داشتم
من با استفاده از کد زیر میتونم از مخاطبین Toast بگیرم ؛ ولی هر کاری میکنم اطلاعاتش رو نمیتونم مثل مثال استاد توی یه حلقه For ، بریزم داخل ListView ؛ اگه میشه کمک کنید
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if (Integer.parseInt(cur.getString(
cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
new String[]{id}, null);
while (pCur.moveToNext()) {
String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(MainActivity.this, "Name: " + name + ", Phone No: " + phoneNo, Toast.LENGTH_SHORT).show();
}
pCur.close();
}
}
}
نظرات
البته فکر میکنم بهتر باشه ذخیره بشه توی یه Database و از توی اون ریخته بشه توی ListView ؛ نمیدونم و شدیدا احتیاج ب راهنماییتون دارم
بهتره اول بگید دقیقا میخواید چی کار کنید تا بتونم راهنماییتون کنم
هدفم گرفتن مخاطبینه و میخوام برای بعضی از اونها که کاربر انتخابشون میکنه بتونم یه سری کار خاص انجام بدم ، مثلا یه سریاشون رو انتخاب کنه با هدف این که این کانتکت ها همیشه سایلنت باشن اگه زنگ زدن و....
خوب باید از دیتابیس استفاده کنید یه لیستی از کل مخاطبین ایجاد میکنید و هرکدومو که کاربر انتخاب کرد در دیتابیس ذخیره میکنید .
یعنی باید کل کانتکت رو توی دیتابیس بریزم و لیست انتخابی کاربر رو هم در دیتابیس جدا ؟
نه خیر باید کل کانتت ها رو صرفا تو لیست نشون بدید و فقط اونایی که کاربر انتخاب میکنه رو در دیتابیس ذخیره کنید
در مورد پیاده سازیش تا حد امکان راهنماییم کنید
آموزش لیست ویو استاد رو ببینید و یه استراکت بسازید که یه شماره و یه نام داشته باشه
نحوه ریختن توی اون لیست رو دقیقا بلد نیستم....
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام

نظرات