5

我的 ICS 应用程序中有一个带有搜索小部件的操作栏。我希望用户可以搜索应用程序附带的一些东西。因此,我想使用搜索小部件,显示一个结果列表,当用户输入新字符时会更新自身(与 Play 商店相同的功能)。我已经SearchView.OnQueryTextListener在我的活动中实现并实现了两种方法onQueryTextChange(String newText)onQueryTextSubmit(String query). 在onQueryTextChange我调用我的服务时,它会返回输入建议的值。但我没有计划,如何显示建议列表。我阅读了developer.android.com上的文章,但据我了解,它主要是针对旧的搜索实现(< Honeycomb)。在 Search Widget API 示例中,建议是安装在系统上的应用程序,由SearchManager. 我还没有找到涵盖该主题的教程或示例(搜索小部件中的自定义建议),有人知道这样的事情吗?

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.search_menu, menu);
       
        
        
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        
        SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();    
        
        
        searchView.setOnQueryTextListener(this);
        return super.onCreateOptionsMenu(menu);
    }

@Override
    public boolean onQueryTextChange(String newText) {
        Log.i(TAG, "Query = " + newText);
        
      if(newText.length() > 0){
          //my suggestion service, returning an arraylist!
      }
        
        return false;
    }

我读到,我需要ContentProvider扩展 from SearchRecentSuggestionsProvider,但我不知道如何处理和创建此提供程序。我有一个searchable.xml关于searchSuggestAuthority我的空白内容提供者的内容。在 AnroidManifest 中,我向 MainActivity 添加了一个 Search Intent,添加了元数据并添加了我的提供程序。但我不知道如何将我的值提供给内容提供者并将这些值显示为建议。

public class SuggentionsProvider extends SearchRecentSuggestionsProvider {
    public final static String AUTHORITY = "com.sap.hui.helper.SuggentionsProvider";
    public final static int MODE = DATABASE_MODE_QUERIES;
    
    public SuggentionsProvider(){
        setupSuggestions(AUTHORITY, MODE);
    }
}

BR,

迈贝克

4

1 回答 1

4

我相信这些是你需要的。

教程:

http://developer.android.com/guide/topics/search/adding-custom-suggestions.html

这个例子:

http://developer.android.com/tools/samples/index.html

于 2012-07-05T07:40:05.490 回答