0
このコードで挿入新しいデータ:アプリケーションがクラッシュしたときのContentProvider
insert
ContentProvider
の場合:
ContentValues values = new ContentValues();
values.put(DogEntry.NAME, "Doggy");
values.put(DogEntry.BREED, "Dingo");
values.put(DogEntry.GENDER, DogEntry.GENDER_MALE);
values.put(DogEntry.WEIGHT, 15);
Uri newUri = getContentResolver().insert(DogEntry.CONTENT_URI,values);
注:私はデータを挿入する場所を
public Uri insert(Uri uri, ContentValues contentValues) {
final int match = sUriMatcher.match(uri);
switch (match) {
case DOG:
insertDog(uri, contentValues);
default:
throw new IllegalArgumentException("Insertion is not supported for " + uri);
}
}
private Uri insertDog(Uri uri, ContentValues contentValues) {
SQLiteDatabase db = mDbHelper.getWritableDatabase();
long id = db.insert(DogEntry.TABLE_NAME, null, contentValues);
if (id == -1) {
Log.e(LOG_TAG, "Failed to insert row for " + uri);
return null;
}
return ContentUris.withAppendedId(uri, id);
}
これはすべて定数であります契約クラスで定義されています。
"App crashes" - LogCatを使用して、クラッシュに関連するJavaスタックトレースを調べます。https://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-この – CommonsWare
@ CommonSWareでは、URIには挿入がサポートされていません。 URIは300%正確です。だから何? –
アプリを再インストールする必要がある場合は、一度実行してdbスキーマを変更してください。 –