2013-03-27 133 views
0

我有一個「聯繫」類,我使用Android的標準聯繫人選擇器代碼,但我想獲得聯繫人的「ID」和「名稱」,不只是數字...這是我的代碼。獲取聯繫人的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您可以在SQL查詢中與「SELECT ...」進行比較。 目前,你只需要Phone.NUMBER,這就是你所得到的。

我不知道我頭頂的常量是什麼,但我想你想要的東西;

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

從此你可以使用普通的get方法從你的Contact對象中獲取這些數據。

ps。我再說一遍,常數是一個猜測。我敢肯定,如果他們不正確,你可以自己找到確切的人,甚至IDE也可以用下拉菜單幫助你。

+0

是的,我正在關注一個教程(這是我的第一天的Java和Android的編程),我很困惑這些投影,遊標等......謝謝btw! – Kitze 2013-03-27 11:47:57

相關問題