デフォルトの連絡先ピッカーを使用して、ユーザーが名前、電話番号、および電子メールをフォームに入力できる連絡先を選択できるようにしようとしています。
私はピッカーに以下を使用しています
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, GlobalVar.GET_CONTACTS_REQUEST_CODE);
問題は、アクティビティの結果を取得するときです。SOで確認できるのは、managerQueryなどの非推奨のAPIだけです(2010年からの回答)。私がアンドロイドのウェブサイトにアクセスしたとき、それは連絡先の詳細をリストビューに入力することについて話します。
私は混乱しています。独自のリストビューを作成したくありません。デフォルトのピッカーを使用して、上記の情報を取得したいと思います。
ヘルプ、実用的な例、または少なくともポインタはありますか?
ありがとうございました
以下のように使用してください。
private static final int PICK_CONTACT = 1000;
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(contactPickerIntent, PICK_CONTACT);
ActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {startActivityForReslut
switch (requestCode) {
case PICK_CONTACT:
contactInfo(data);
break;
}
} else {
Log.e("MainActivity", "Failed to pick contact");
}
}
連絡先を選択する機能:
private void contactInfo(Intent data) {
Cursor cursor = null;
try {
String phoneNo = null ;
String name = null;
Uri uri = data.getData();
cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
int phoneIndex =cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
int nameIndex =cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
phoneNo = cursor.getString(phoneIndex);
name = cursor.getString(nameIndex);
Toast.makeText(this,name + "," +phoneNo,Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
参照:http://stackandroid.com/tutorial/contact-picker-using-intent-android-tutorial/
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加