0

Android アプリでの検索について混乱しています。ListViewからのデータを に入力しContentProviderます。検索ビューを統合しました。これは問題なく動作しますが、ユーザーが検索に文字列を入力すると、間違った URI が呼び出されます。

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);        
}

アプリが"NumberFormatException". たとえば、検索フィールドに「a」と入力します。私が google-dev サイトを調べた限りでは、この URI は次のように呼ばれるべきです:+"/*",

実際、URI"/#"が呼び出され、例外がスローされます。

私が間違ったことをしたことはありますか?

4

1 に答える 1