2017-10-19 35 views
-1

我想意圖在android聯繫人窗口中更新或修改用戶聯繫人詳細信息。 下面的代碼工作正常,但是,它不會將正確的電話號碼傳遞給android聯繫人編輯器窗口。以編程方式使用意圖修改或更新聯繫人

這是我的代碼

private void modifyContact() { 
     phonenumber="0711236763"; 

    mSelectedContactUri=Uri.parse(phonenumber); 

    mCursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 


    if (mCursor != null && mCursor.moveToFirst()) { 
     mLookupKeyIndex = mCursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY); 
     mCurrentLookupKey = mCursor.getString(mLookupKeyIndex); 
     mIdIndex = mCursor.getColumnIndex(ContactsContract.Contacts._ID); 
     mCurrentId = mCursor.getLong(mIdIndex); 
    } 

    mSelectedContactUri = ContactsContract.Contacts.getLookupUri(mCurrentId, mCurrentLookupKey); 
    Intent editIntent = new Intent(Intent.ACTION_EDIT); 

    editIntent.setDataAndType(mSelectedContactUri, ContactsContract.Contacts.CONTENT_ITEM_TYPE); 
    editIntent.putExtra("finishActivityOnSaveCompleted", true); 

    startActivity(editIntent); 

    } 

變量phonenumber是,我想修改或更新的電話號碼。

+0

爲什麼'mCursor' null? – pskink

+0

所以我應該用null初始化它,我真的是堆棧,我不知道如何去做 –

+0

爲什麼你使用'mCursor'如果它是空的? – pskink

回答

1

確保光標從它訪問數據之前正確初始化。」它在我的代碼。

1.Try從中讀取數據之前moveToFirst定位光標。

2.檢查了空值>如果(C!= NULL & & c.moveToFirst()){}

3.檢查用於count->(C!= NULL & & c.getCount()> 0 & & c.moveToFirst( )){}

+0

謝謝Sanneesh,我是Cursor班的新手,你能否更新你的答案,包括我的功能?和藹 –

相關問題