我正在学习 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
在主活动的数组列表视图中显示的所选记录使用 about。
到目前为止,这是我在此方法的主要活动中提出的:
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;
}
我知道上面的代码不起作用,但这与我目前的理解一样接近。
对此的任何帮助将不胜感激。