بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ذخیره مخاطبین در لیست ویوو و استفاده از آنها [حل شد]

مدیریت گفتگو
Lamanta 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام

من میخوام یه سری از مخاطبین رو Pick کنم و بتونم ازشون توی یه Listview استفاده کنم

لیست ویو رو طبق آموزش استاد ساختم و تاپیک های مختلف رو هم دیدم ؛ چ اینجا چ Stackoverflow ، ولی به نتیجه نرسیدم...
دنبال رسیدن به یه همچین چیزی هستم :


نظرات

پاسخ‌ها 3

Hossein Lamei Ramandi 10 سال پیش

تو استک سرچ زدم پیدا کردم برات

این متغیر قرار بده بصورت فیلد

 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;}}

ادیتور سایت قاطی کرده بودمجبور شدم اسپیس بزنم بین خط ها

برای اضافه کردن تو لیست هم آموزش استاد در خصوص لیست ویو رو ببین اگه مشکلی بود درخدمتم

نظرات

Lamanta 10 سال پیش
این سوال رو دقیقا خودم توی استک پرسیده بودم..... اما این پیاده سازی انتخاب Multiple نداره و فقط 1 دونه کانتکت رو میشه انتخاب کرد....
Hossein Lamei Ramandi 10 سال پیش
خوب شما سوالتون رو واضح نپرسیدید من این برداشتو داشتم
Lamanta 10 سال پیش

من  با استفاده از کد زیر میتونم از مخاطبین 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();
}
}
}
 

نظرات

Lamanta 10 سال پیش
البته فکر میکنم بهتر باشه ذخیره بشه توی یه Database و از توی اون ریخته بشه توی ListView ؛ نمیدونم و شدیدا احتیاج ب راهنماییتون دارم
Hossein Lamei Ramandi 10 سال پیش
بهتره اول بگید دقیقا میخواید چی کار کنید تا بتونم راهنماییتون کنم
Lamanta 10 سال پیش
هدفم گرفتن مخاطبینه و میخوام برای بعضی از اونها که کاربر انتخابشون میکنه بتونم یه سری کار خاص انجام بدم ، مثلا یه سریاشون رو انتخاب کنه با هدف این که این کانتکت ها همیشه سایلنت باشن اگه زنگ زدن و....
Hossein Lamei Ramandi 10 سال پیش
خوب باید از دیتابیس استفاده کنید یه لیستی از کل مخاطبین ایجاد میکنید و هرکدومو که کاربر انتخاب کرد در دیتابیس ذخیره میکنید .
Lamanta 10 سال پیش
یعنی باید کل کانتکت رو توی دیتابیس بریزم و لیست انتخابی کاربر رو هم در دیتابیس جدا ؟
Hossein Lamei Ramandi 10 سال پیش
نه خیر باید کل کانتت ها رو صرفا تو لیست نشون بدید و فقط اونایی که کاربر انتخاب میکنه رو در دیتابیس ذخیره کنید
Lamanta 10 سال پیش
در مورد پیاده سازیش تا حد امکان راهنماییم کنید
Hossein Lamei Ramandi 10 سال پیش
آموزش لیست ویو استاد رو ببینید و یه استراکت بسازید که یه شماره و یه نام داشته باشه
Lamanta 10 سال پیش
نحوه ریختن توی اون لیست رو دقیقا بلد نیستم....
Lamanta 10 سال پیش

از این روش استفاده کردم و به خوبی جواب داد : لینک

نظرات


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