2017-10-19 77 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班的新手,你能否更新你的答案,包括我的功能?和蔼 –

相关问题