2011-07-18 25 views
1

在我的應用程序中,我實現了添加聯繫人的功能。爲此我使用的代碼獲取_id並顯示新添加的聯繫人的姓名:min API 7

Intent addNewContact = new Intent(Intent.ACTION_INSERT); 
addNewContact.setType(ContactsContract.Contacts.CONTENT_TYPE); 
startActivityForResult(addNewContact, ADD_NEW_CONTACT); 

增加接觸(在活動結果)後,我想證明接觸(只,我不想重複URI),但我不知道如何只顯示該聯繫人。有沒有辦法?

這裏是我的onActivityResult()

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == ADD_NEW_CONTACT) { 
      if(resultCode == -1) { 
       Log.i("New contact Added : ", "Addedd new contact, Need to refress item list"); 
      } else { 
       Log.i("New contact Added : ", "Canceled to adding new contacts : Not need to update item list"); 
      } 
     } 
    } 

謝謝!

回答

3

您必須閱讀data參數onActivityResult(),您可以在其中得到_id,顯示名等。

試試這個代碼

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == ADD_NEW_CONTACT) { 
      if(resultCode == -1) { 
       Uri contactData = data.getData(); 
        Cursor cursor = managedQuery(contactData, null, null, null, null); 
        if (cursor.moveToFirst()) { 
         long newId = cursor.getLong(cursor.getColumnIndexOrThrow(Contacts._ID)); 
         String name = cursor.getString(cursor.getColumnIndexOrThrow(Contacts.DISPLAY_NAME)); 
         Log.i("New contact Added", "ID of newly added contact is : " + newId + " Name is : " + name); 
        } 
       Log.i("New contact Added : ", "Addedd new contact, Need to refress item list : DATA = " + data.toString()); 
      } else { 
       Log.i("New contact Added : ", "Canceled to adding new contacts : Not need to update database"); 
      } 
     } 
    } 

編碼愉快。

+0

正是我在尋找的問題,正是我需要的答案!謝謝! –

+0

嘿,我試圖做同樣的事情,但我的數據參數返回null。我以與OP相同的方式調用插入接觸動作。有什麼建議麼? – user2223059

+0

什麼是您的設備的操作系統版本?並檢查另一臺設備。 –

相關問題