0
我对在我的Android应用程序中搜索感到困惑。我使用我的ContentProvider
中的数据填充ListView
。 我集成了一个搜索视图。这工作得很好,但如果用户输入的搜索字符串,错误的URI被称为:用"NumberFormatException"
Android:在ListView中用ContenProvider搜索
switch(sURIMatcher.match(uri)) {
case RP_ENTRY_DIRECTORY:
break;
case RP_ENTRY_DIRECTORY_FILTER:
queryBuilder.appendWhere(RpEntry.Columns.SNAME + " LIKE %"+ uri.getLastPathSegment()+"% ");
case RP_ENTRY_ITEM:
long id = ContentUris.parseId(uri);
queryBuilder.appendWhere(RpEntry.Columns.SNAME + " LIKE "+ uri.getLastPathSegment());
// if(selection!=null && !selection.isEmpty())
// _selection += " and"+selection;
// return dbhelper.getReadableDatabase().query(RpEntry.TABLE_NAME,
// projection, _selection, selectionArgs, null, null, sortOrder);
break;
private static final UriMatcher sURIMatcher =
new UriMatcher(UriMatcher.NO_MATCH);
static {
sURIMatcher.addURI(AUTHORITY, RpEntry.CONTENT_DIRECTORY, RP_ENTRY_DIRECTORY);
sURIMatcher.addURI(AUTHORITY, RpEntry.CONTENT_DIRECTORY+"/*", RP_ENTRY_DIRECTORY_FILTER);
sURIMatcher.addURI(AUTHORITY, RpEntry.CONTENT_DIRECTORY+"/#", RP_ENTRY_ITEM);
}
应用崩溃。例如。我在搜索字段中输入'a'。据我研究谷歌开发网站,这个URI应该被称为:+"/*",
事实上,调用的URI "/#"
,并抛出异常。
任何想法我做错了什么?
请编辑并正确格式化您的问题。 –