Я изучаю Android, и я застрял на проблеме, связанной с вызовом поставщика пользовательского контента. Я использовал пример в учебном пособии, и хотя в нем описывается, как создать настраиваемый поставщик, нет четкого примера, как вызывать в нем определенные методы. Я специально изучаю, как удалить одну запись из настраиваемого поставщика содержимого.
Вот код для настраиваемого поставщика содержимого ( EarthquakeProvider.java
):
@Override
public int delete(Uri uri, String where, String[] whereArgs) {
int count;
switch (uriMatcher.match(uri)) {
case QUAKES:
count = earthquakeDB.delete(EARTHQUAKE_TABLE, where, whereArgs);
break;
case QUAKE_ID:
String segment = uri.getPathSegments().get(1);
count = earthquakeDB.delete(EARTHQUAKE_TABLE, KEY_ID + "="
+ segment
+ (!TextUtils.isEmpty(where) ? " AND ("
+ where + ')' : ""), whereArgs);
break;
default: throw new IllegalArgumentException("Unsupported URI: " + uri);
}
getContext().getContentResolver().notifyChange(uri, null);
return count;
}
Я пытаюсь вызвать delete из основного действия, чтобы удалить одну запись, а не всю базу данных. Я хочу использовать OnLongClickListener
для выбранной записи, которая отображается в виде списка массивов в основном действии.
Это то, что я придумал до сих пор в своей основной деятельности для этого метода:
earthquakeListView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView _av, View _v, int _index,
long arg3) {
ContentResolver cr = getContentResolver();
cr.delete(earthquakeProvider.CONTENT_URI, null, null);
return false;
}
Я знаю, что приведенный выше код не работает, но это максимально близко к моему текущему пониманию.
Мы будем очень благодарны за любую помощь по этому поводу.