2016-06-22 2 views
0

複数の連絡先を選択するには連絡先選択ライブラリを使用していますが、連絡先に番号が含まれていない場合は選択されていますテキストフィールド。そのメッセージを削除する方法と末尾のカンマを削除する方法。以下は私のコードです。表示方法連絡先ピッカーを使用して電話番号が存在する場合のみ

try { 
      int pos = 0; 
      for (Contact contact : contacts) { 
       String displayName = contact.getDisplayName(); 
       result.append(displayName + ","); 
       result.setSpan(new BulletSpan(15), pos, pos + displayName.length() + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); 
       //pos += displayName.length() + 1; 
      } 
     } 
     catch (Exception e) { 
      result.append(e.getMessage()); 
     } 

     contactsView.setText(result); 
+0

あなたが使っているライブラリを教えてください。 ContactクラスにはgetPhoneNumberメソッドがありますか? – Pr38y

+0

com.onegravity.contactpickerこのライブラリ........ ContactPickerActivityはクラスです。それにgetPhoneNumberメソッドがあります。 – stackover65

+0

次に、その更新に基づいて、電話番号をチェックする条件が存在するかどうかをチェックします。 – Pr38y

答えて

0

ContactFragmentにこのコード

void getAllContacts() { 
    ArrayList<String> nameList = new ArrayList<>(); 
    ArrayList<String> numberList = new ArrayList<>(); 

    Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 
    String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER; 
    String[] list = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone._ID, ContactsContract.Contacts._ID}; 
    Cursor cursor = getContentResolver().query(uri, list, selection, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); 

    cursor.moveToFirst(); 
    if (cursor.moveToFirst()) { 
     do { 
      String contactNumber =  cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 


      contactNuber.add(contactNumber); 
      contactsName.add(contactName); 
      nameList.add(contactName); 
      numberList.add(contactNumber); 

     } while (cursor.moveToNext()); 
     cursor.close(); 
     myContacts.put("name", nameList); 
     myContacts.put("number", numberList); 


    } 

} 
0

Go]をチェックし、1以下でonEventMainThread()を交換してみてください....

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN) 
    public void onEventMainThread(ContactsLoaded event) { 
     EventBus.getDefault().removeStickyEvent(event); 

     List<Contact> c = new ArrayList<>(); 

     mContacts = event.getContacts(); 
     // mFilteredContacts = mContacts; 
     for (Contact contact : mContacts) { 
      if (contact.getPhone(2) != null) 
       c.add(contact); 

     } 
     mFilteredContacts = c; 
     mContacts = c; 
     mAdapter.setData(mFilteredContacts); 

     updateEmptyViewVisibility(mContacts); 
    } 

・ホープ、この意志助け.....

関連する問題