Вызов метода удаления в настраиваемом поставщике контента

Я изучаю 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;
    }

Я знаю, что приведенный выше код не работает, но это максимально близко к моему текущему пониманию.

Мы будем очень благодарны за любую помощь по этому поводу.

12
задан Macarse 10 March 2011 в 23:57
поделиться