Видя ответы, я думаю, что вы получили ответ, как получать контакты, и теперь вы хотите получить выбранные контакты в вашей деятельности.
Чтобы получить контактный номер, определенный для имени контакта:
ContentResolver contactResolver = getContentResolver();
Cursor cursor = contactResolver.query(Phone.CONTENT_URI, null, Phone.DISPLAY_NAME + "=?", new String[]{contactName}, null);
if(cursor.getCount() > 0){
cursor.moveToFirst();
do {
String number = cursor.getString(mCursor.getColumnIndex(Phone.NUMBER));
}while (cursor.moveToNext() );
}
Примечание: Здесь contactName
- это имя контакта, которого выхочу указать контактные номера.
Я предполагаю, что вы показали контакты с флажком в ListView, и вот ваше решение, чтобы получить список контактов, выбранный пользователем для вашей деятельности:
1. Начните свою контактную деятельность с startActivityForResult()
.
2. Инициализируйте ArrayList
переменную в контактной активности, скажем contactArrayList
.
3. Когда пользователь checks the checkbox
, добавьте этот контакт в свой contactArrayList
и продолжайте добавлять, а когда unchecks
, затем удалите контакт из contactArrayList
.
4. Когда пользователь нажмет кнопку «Готово», установите результат в соответствии с выбранным списком контактов, который вы добавили в contactArrayList
, например:
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putStringArrayList("contacts", contactArrayList);
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
и finish()
thisактивность.
5. Переопределение активности вызовов:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK && data != null ){
Bundle bundle = new Bundle();
bundle = data.getExtras();
ArrayList list = bundle.getStringArrayList("contacts");
}
}
Примечание: Код вышепроверено более 2.3.3.