android利用数据库实现搜索联想功能
2010-05-26 02:13:00 来源:WEB开发网主要实现的效果是和google搜索一样,实现联想功能,如用户输入a,列表中则显示以a开头的数据库中的信息。下面是实现的效果图:
* 实现过程主要是添加所有的数据到数据库中。
* 调用搜索控件,可见android利用 onSearchRequested()调用内部搜索ui组件。
* 根据用户输入的信息显示联想的所有词的列表。
* 根据用户选择,显示相应的结果。
实现的主要代码:
public class SearchProvider extends ContentProvider {
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}
@Override
public boolean onCreate() {
// 添加所有的数据
SearchUtil.getInstance().ensureLoaded();
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
String query = null;
if (uri.getPathSegments().size() > 1) {
query = uri.getLastPathSegment().toLowerCase();
}
return getSuggestions(query);
}
private Cursor getSuggestions(String query) {
String processedQuery = query == null ? "" : query.toLowerCase();
List< SearchUtil.Word > words = SearchUtil.getInstance().getMatches(
processedQuery);
MatrixCursor cursor = new MatrixCursor(COLUMNS);
long id = 0;
更多精彩
赞助商链接