0

「連絡先」クラスがあり、Android 用の標準の連絡先ピッカー コードを使用していますが、番号だけでなく、連絡先の「ID」と「名前」も取得したいです...これが私のコードです。

@Override public void onActivityResult( int requestCode, int resultCode, Intent intent ) {

    super.onActivityResult( requestCode, resultCode, intent );
    if ( requestCode == PICK_CONTACT_REQUEST ) {

        if ( resultCode == RESULT_OK ) {
            Uri contactUri = intent.getData();
            String[] projection = {Phone.NUMBER};
            Cursor cursor = getContentResolver()
                    .query(contactUri, projection, null, null, null);
            cursor.moveToFirst();
            int column = cursor.getColumnIndex(Phone.NUMBER);
            String number = cursor.getString(column);
            int contactNumber = Integer.parseInt(number);

            //i need to get the contactId and the contactName here

            Contact newContact = new Contact(contactId,contactName,contactNumber);

               EditText _contactName = (EditText) findViewById(R.id.contact_name);
               _contactName.setText(number.toString());
            }
        }
    }

解決策を見つけました。必要な方はこちらから。

            Uri contactUri = intent.getData();
            String[] projection = {Phone.NUMBER, Phone.DISPLAY_NAME, Phone._ID};

            Cursor cursor = getContentResolver()
                    .query(contactUri, projection, null, null, null);
            cursor.moveToFirst();

            int columnNumber = cursor.getColumnIndex(Phone.NUMBER);
            String contactNumber = cursor.getString(columnNumber);

            int columnName = cursor.getColumnIndex(Phone.DISPLAY_NAME);
            String contactName = cursor.getString(columnName);

            int columnID = cursor.getColumnIndex(Phone._ID);
            String ID = cursor.getString(columnID);
            int contactID = Integer.parseInt(ID);
4

1 に答える 1

0

あなたの質問から、このコードをオンラインのどこかで見つけたことが明らかだと思います。

SQLString[] projectionクエリの「SELECT ...」と比較できます。現在、Phone.NUMBER のみを要求しているため、取得できるのはそれだけです。

頭のてっぺんでは定数が何であるかわかりませんが、次のようなものが必要だと思います。

String[] projection = {Phone.NUMBER, Contact.NAME, Contact.ID};

それ以降は、通常の get メソッドを使用して、Contact オブジェクトからこのデータを取得できます。

ps。繰り返しますが、定数は推測です。それらが正しくない場合、またはIDEでさえドロップダウンでそれを支援するだけである場合、正確なものを自分で見つけることができると確信しています。

于 2013-03-27T11:06:02.460 に答える