我有 我面臨一個大問題:我無法將數據添加到現有聯繫人:( 我開發一個應用程序來管理聯繫人,我可以添加,刪除或編輯聯繫人 創建是好的,因爲我爲聯繫人創建了所有類型的數據(即使它們是空的)(這不是一個好方法,我將會改變這個)所以當我想編輯這些數據時,我可以找到它們到數據庫(使用Datas.CONTENT_URI)因爲它們已經存在了!將數據(電話號碼,備註等)添加到現有聯繫人(ANDROID 2.1)
但是,如果我使用ANDROID聯繫人應用程序只爲聯繫人創建填充fatas。當我嘗試添加新的電話號碼時,例如在我的應用程序中出現錯誤或者:(
這裏是我的代碼來嘗試添加電話號碼:
ContentValues contentValues = new ContentValues();
contentValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
contentValues.put(ContactsContract.CommonDataKinds.Phone.NUMBER, pNewPhoneNumber.number);
contentValues.put(ContactsContract.CommonDataKinds.Phone.TYPE, pNewPhoneNumber.type);
contentValues.put(ContactsContract.Data.CONTACT_ID, pContact.getContactId());
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI).withValues(contentValues).build());
try
{
pContext.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
catch (Exception e)
{
Context ctx = pContext.getApplicationContext();
String txt = "Exception encoutered while inserting contact: " + e;
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(ctx, txt, duration);
toast.show();
Log.e(TAG, txt);
}
以下是錯誤:
06-23 09:21:54.030: ERROR/DatabaseUtils(111): Writing exception to parcel
06-23 09:21:54.030: ERROR/DatabaseUtils(111): java.lang.NullPointerException
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at com.android.providers.contacts.ContactsProvider2.insertData(ContactsProvider2.java:2206)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at com.android.providers.contacts.ContactsProvider2.insertInTransaction(ContactsProvider2.java:2096)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at com.android.providers.contacts.SQLiteContentProvider.insert(SQLiteContentProvider.java:101)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at com.android.providers.contacts.ContactsProvider2.insert(ContactsProvider2.java:1941)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at android.content.ContentProviderOperation.apply(ContentProviderOperation.java:211)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at com.android.providers.contacts.SQLiteContentProvider.applyBatch(SQLiteContentProvider.java:200)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java:1960)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:169)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:167)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at android.os.Binder.execTransact(Binder.java:287)
06-23 09:21:54.030: ERROR/DatabaseUtils(111): at dalvik.system.NativeStart.run(Native Method)
所以我有一個數據庫的問題,OK。但我錯在哪裏?
如果你知道如何解決這個問題:讓我知道:) 謝謝