2013-11-25 5 views
1

Я хочу сделать список контактов, который должен быть сохранен приложением, позволяет пользователям размещать проверки на некоторых контактах и ​​сохранять предпочтения пользователей. Я хочу знать, можно ли использовать активность предпочтений, чтобы перечислять все контакты как флажки, , или может ли пользовательское listview сохранять настройки пользователей для приложения?Проверить список контактов в Android

+0

и что вы пробовали? –

ответ

1

вы можете получить контактные данные с помощью следующего кода:

 Cursor cursor = getContentResolver().query(
         ContactsContract.Contacts.CONTENT_URI, null, null, 
         null, null); 

       cursor.moveToFirst(); 

       if (cursor.getCount() > 0) { 
        do { 

         try { 
          contactId = cursor 
            .getString(cursor 
              .getColumnIndex(ContactsContract.Contacts._ID)); 

          Uri contactUri = ContentUris.withAppendedId(
            Contacts.CONTENT_URI, 
            Long.parseLong(contactId)); 
          Uri dataUri = Uri.withAppendedPath(contactUri, 
            Contacts.Data.CONTENT_DIRECTORY); 

          Cursor phones = getContentResolver() 
            .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
              null, 
              ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
                + " = " + contactId, 
              null, null); 
          if (phones.getCount() > 0) { 

           try { 
            Cursor nameCursor = getContentResolver() 
              .query(dataUri, 
                null, 
                Data.MIMETYPE + "=?", 
                new String[] { StructuredName.CONTENT_ITEM_TYPE }, 
                null); 
            nameCursor.moveToFirst(); 
            do { 

             String firstName = nameCursor 
               .getString(nameCursor 
                 .getColumnIndex(Data.DATA2)); 

             String displayname = cursor 
               .getString(cursor 
                 .getColumnIndex(Contacts.DISPLAY_NAME_ALTERNATIVE)); 

             lastName = nameCursor 
               .getString(nameCursor 
                 .getColumnIndex(Data.DATA3)); 

            } while (nameCursor.moveToNext()); 
            nameCursor.close(); 

           } catch (Exception e) { 

           } 
          } 
          phones.close(); 
         } 

         catch (Exception t) { 

         } 

        } while (cursor.moveToNext()); 

        } 

после списка ПОЛУЧИТЬ ваше контактное имя или что-нибудь, что вы хотите, вам нужно создать собственный адаптер, чтобы показать эти данные, для создания пользовательского списка посмотреть link и this.

//////////////////////

EDIT:

вы можете получить номер телефона с помощью следующего кода:

String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
+0

Thanx Shayan Pourvatan, но возможно ли мне передать массив контактов в список, где пользователь может проверить некоторые контакты. И если это невозможно, я могу легко сохранить контакты, которые пользователи проверяют, из пользовательского адаптера для listview в форме предпочтений пользователей. – user3033262

+0

Да, вы легко можете добавить 'display name' или' firstname + lastname' в один список и установить адаптер, а когда пользователь проверит контакт, получите имя и то, что вы хотите. но для создания пользовательского адаптера см. ссылку, полезную для вас –

+0

, если вы считаете, что мой ответ правильный, как ответ, что другие люди, имеющие такую ​​же проблему, могут использовать это –

Смежные вопросы