2013-03-27 198 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

相关问题