2013-03-27 2 views
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); 

ответ

0

Я думаю, ваш вопрос дает понять, что вы только что нашли этот код где-то в Интернете.

String[] projection Вы можете сравнить с 'SELECT ...' в запросе SQL. В настоящее время вы только запрашиваете Phone.NUMBER, так что это все, что вы получаете.

Я не знаю, на вершине моей головы, что такое константы, но я думаю, вы хотите что-то вроде;

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

С этого момента вы можете использовать обычные методы get для извлечения этих данных из вашего объекта Contact.

пс. Повторяю, константы - это предположение. Я уверен, что вы можете найти точные сами, если они не правильные, или даже IDE просто поможет вам с раскрывающимся списком.

+0

Да, я следую учебнику (это мой первый день Java и программирование для Android), и я смущен этими прозаиками, курсорами и т. Д. Спасибо, btw! – Kitze

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