رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

انتخاب شماره از لیست مخاطبین


پست های پیشنهاد شده

سلام به همگی

من تو پروژم یه دکمه و یک ادیت باکس دارم .

میخام وقتی با دکمه کلیک میکنم برنامه داخل لیست مخاطبین بشه و با انتخاب یک مخاطب شماره ی طرف به داخل ادیت باکس بیاد!

کسی هست کدشو قرار بده؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با این کد میتوانید وقتی لیست مخاطبان گوشی را در یک لیست ویو نمایش دهید :

    Intent intent = new Intent(Intent.ACTION_PICK,                        ContactsContract.Contacts.CONTENT_URI);                startActivityForResult(intent, 1);
لینک ارسال
به اشتراک گذاری در سایت های دیگر

این کد باید شماره ی انتخاب شده رو از بین مخاطب ها بیاره تو برنامم و بریزه تو تکت که اسمش number هستش!

چرا کار نمیکنه؟

@Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {  if (resultCode == RESULT_OK) {  	   switch (requestCode) {          case CONTACT_PICKER_RESULT:            final EditText phoneInput = (EditText) findViewById(R.id.number);            Cursor cursor = null;              String phoneNumber = "";            List allNumbers = new ArrayList();            int phoneIdx = 0;            try {                  Uri result = data.getData();                  String id = result.getLastPathSegment();                  cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);                  phoneIdx = cursor.getColumnIndex(Phone.DATA);                if (cursor.moveToFirst()) {                    while (cursor.isAfterLast() == false) {                        phoneNumber = cursor.getString(phoneIdx);                        allNumbers.add(phoneNumber);                        cursor.moveToNext();                    }                } else {                    //no results actions                }              } catch (Exception e) {                 //error actions            } finally {                  if (cursor != null) {                      cursor.close();                }                final CharSequence[] items = allNumbers.toArray(new String[allNumbers.size()]);                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);                builder.setTitle("Choose a number");                builder.setItems(items, new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int item) {                        String selectedNumber = items[item].toString();                        selectedNumber = selectedNumber.replace("-", "");                        phoneInput.setText(selectedNumber);                    }                });                AlertDialog alert = builder.create();                if(allNumbers.size() > 1) {                    alert.show();                } else {                    String selectedNumber = phoneNumber.toString();                    selectedNumber = selectedNumber.replace("-", "");                    phoneInput.setText(selectedNumber);                }                if (phoneNumber.length() == 0) {                      //no numbers found actions                  }              }              break;          }      } else {       //activity result error actions    }  }
لینک ارسال
به اشتراک گذاری در سایت های دیگر

کاربر گرامی این تاپیک را ملاحضه بفرمایید، در این مثال کاملا مشکل شما برطرف شده است :

http://www.p30droid.com/showthread.php?tid=51
لینک ارسال
به اشتراک گذاری در سایت های دیگر

تو اون برنامه ای که گزاشتید نبود

این کد جواب میده اما وقتی شماره هارو وارد میکنم شماره هارو تصادفی وارد میکنه

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);  if (requestCode == 1){	   if(resultCode == RESULT_OK) {	Uri contentUri = data.getData();	String contactId = contentUri.getLastPathSegment();	Cursor cursor = getContentResolver().query(  	        Phone.CONTENT_URI, null,  	        Phone._ID + "=?",       // < - Note, not CONTACT_ID!	        new String[]{contactId}, null);	startManagingCursor(cursor);      Boolean numbersExist = cursor.moveToFirst();                  int phoneNumberColumnIndex = cursor.getColumnIndex(Phone.DATA);                  String phoneNumber = "";      while (numbersExist)       {        phoneNumber = cursor.getString(phoneNumberColumnIndex);     	  phoneNumber = phoneNumber.trim();          numbersExist = cursor.moveToNext();      }	stopManagingCursor(cursor);			    if (phoneNumber != (""))     {    	Toast.makeText(MainActivity.this, phoneNumberColumnIndex, 1).show();	  phone.setText(phoneNumber);		    	} // phoneNumber != ""} // Result Code = RESULT_OK} // Request Code = REQUEST_CONTACTPICER}	// end function   	

کجای کد اشتباهه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تو اون برنامه ای که گزاشتید نبود

این کد جواب میده اما وقتی شماره هارو وارد میکنم شماره هارو تصادفی وارد میکنه

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);  if (requestCode == 1){	   if(resultCode == RESULT_OK) {	Uri contentUri = data.getData();	String contactId = contentUri.getLastPathSegment();	Cursor cursor = getContentResolver().query(  	        Phone.CONTENT_URI, null,  	        Phone._ID + "=?",       // < - Note, not CONTACT_ID!	        new String[]{contactId}, null);	startManagingCursor(cursor);      Boolean numbersExist = cursor.moveToFirst();                  int phoneNumberColumnIndex = cursor.getColumnIndex(Phone.DATA);                  String phoneNumber = "";      while (numbersExist)       {        phoneNumber = cursor.getString(phoneNumberColumnIndex);     	  phoneNumber = phoneNumber.trim();          numbersExist = cursor.moveToNext();      }	stopManagingCursor(cursor);			    if (phoneNumber != (""))     {    	Toast.makeText(MainActivity.this, phoneNumberColumnIndex, 1).show();	  phone.setText(phoneNumber);		    	} // phoneNumber != ""} // Result Code = RESULT_OK} // Request Code = REQUEST_CONTACTPICER}	// end function   	

کجای کد اشتباهه؟

ممنون از همگی

خودم کد رو درست کردم!

هرکی خواست بگه تا کد را براش بزارم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کاربران گرامی در تاپیکی که نمونه برنامه SMS را قراره داده ام، مشکلی که چند وقته در ان گیر کرده اید حل شده است. به بخش ارسال اس ام اس بروید آنجا دکمه ای که سه نقطه است را انتخاب کنید تا لیست کاربران نمایش داده شود.

http://www.p30droid.com/showthread.php?tid=51

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بفرمایید

با این کد لیست شماره تلفن ها به نمایش درمیاین

Intent intent = new Intent(Intent.ACTION_PICK,                       ContactsContract.Contacts.CONTENT_URI);               startActivityForResult(intent, 1);

و با این کدم هر کدومش رو انتخاب کنی به EditText اضافه میشه!

@Overridepublic void onActivityResult(int reqCode, int resultCode, Intent data) {   super.onActivityResult(reqCode, resultCode, data);   phone.setText(null);   try {       if (resultCode == Activity.RESULT_OK) {           Uri contactData = data.getData();           Cursor cur = managedQuery(contactData, null, null, null, null);           ContentResolver contect_resolver = getContentResolver();           if (cur.moveToFirst()) {               String id = cur.getString(cur.getColumnIndexOrThrow(ContactsContract.Contacts._ID));               String name = "";               String no = "";               Cursor phoneCur = contect_resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,                       ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null);               if (phoneCur.moveToFirst()) {                   name = phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));                   no = phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));               }               Log.e("Phone no & name :***: ", name + " : " + no);               phone.append(no);               id = null;               name = null;               no = null;               phoneCur = null;           }           contect_resolver = null;           cur = null;           //                      populateContacts();       }   } catch (IllegalArgumentException e) {       e.printStackTrace();       Log.e("IllegalArgumentException :: ", e.toString());   } catch (Exception e) {       e.printStackTrace();       Log.e("Error :: ", e.toString());   }}  // end function
لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...