Android开发——Android搜寻框架(二)

Android开发——Android搜索框架(二)

1.创建搜索建议提供者

Android已经为我们创建了一个默认的,我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。

见代码:

   1:
 import android.content.SearchRecentSuggestionsProvider;
   2:
  
   3:
 /**
   4:
  * 搜索提示
   5:
  * 
   6:
  * @author Hanguo
   7:
  * http://t.sina.com.cn/halzhang
   8:
  * @version 2011-1-5上午11:51:39
   9:
  */
  10:
 public
 class
 SearchSuggestionsProvider extends SearchRecentSuggestionsProvider {
  11:
     //记住这个哦
  12:
     public
 final static
 String AUTHORITY = "searchprovider"
;
  13:
  
  14:
     public
 final static
 int
 MODE = DATABASE_MODE_QUERIES;
  15:
  
  16:
     public
 SearchSuggestionsProvider() {
  17:
         setupSuggestions(AUTHORITY, MODE);
  18:
     }
  19:
 }

2.配置searchable.xml

   1:
 <?
xml
 version
="1.0"
 encoding
="utf-8"
?>
   2:
 <
searchable
 xmlns:android
="http://schemas.android.com/apk/res/android"
   3:
     android:label
="@string/search_label"
 
   4:
     android:hint
="@string/search_hint"
   5:
     android:searchSettingsDescription
="@string/search_settings_description"
   6:
     android:searchSuggestAuthority
="searchprovider"
   7:
     android:searchSuggestIntentAction
="android.intent.action.SEARCH"
   8:
     android:searchSuggestThreshold
="1"
   9:
     android:includeInGlobalSearch
="true"
  10:
     android:searchSuggestSelection
=" ?"
  11:
     >
  12:
 </
searchable
>
参数说明:
android:searchSuggestAuthorith
此属性的值就是SearchSuggestAuthorith中的AUTHORITH了。
android:searchSuggestIntentAction
此属性定义了当我们选中搜索提示的内容时发生的目的动作。
android:searchSuggestThreshold
此属性定义了至少输入几个字符时才会弹出提示
android:includeInGlobalSearch
是否将内容加入android的全局搜索。true,加入。
android:searchSuggestSelection
定义搜索时参数的占位符