我正在尝试以编程方式从手机中选择可用的联系人,我正在使用以下代码
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, 1);
但问题是如何使用联系人页面中的复选框一次选择多个联系人?
答案 0 :(得分:12)
您必须以编程方式阅读联系人,并将其显示在ListView
的{{1}}中。在Activity
项目中使用CheckBox
,并允许选择多个项目。查找ListView
的简单示例/教程,然后从那里开始。
为什么最好创建自定义ListView
而不是使用ListView
有几个原因:
Intent(Intent.ACTION_GET_CONTENT);
,然后选择一个选择器
用户和他将不得不选择其中之一。用户的选择
可能不支持选择多个联系人。以下是读取系统联系人的示例:
ACTION_GET_CONTENT
答案 1 :(得分:3)
public static final int REQUEST_CODE_PICK_CONTACT = 1;
public static final int MAX_PICK_CONTACT= 10;
private void launchMultiplePhonePicker() {
Intent phonebookIntent = new Intent("intent.action.INTERACTION_TOPMENU");
phonebookIntent.putExtra("additional", "phone-multi");
phonebookIntent.putExtra("maxRecipientCount", MAX_PICK_CONTACT);
phonebookIntent.putExtra("FromMMS", true);
startActivityForResult(phonebookIntent, REQUEST_CODE_PICK_CONTACT);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==RESULT_OK)
{
if(requestCode == REQUEST_CODE_PICK_CONTACT )
{
Bundle bundle = data.getExtras();
String result= bundle.getString("result");
ArrayList<String> contacts = bundle.getStringArrayList("result");
Log.i(TAG, "launchMultiplePhonePicker bundle.toString()= " + contactsPick.toString() );
}
}
super.onActivityResult(requestCode, resultCode, data);
}