搜索小组件中的自定义建议(Android ICS)

时间:2012-06-04 14:55:58

标签: android search android-4.0-ice-cream-sandwich android-actionbar

我的ICS应用中有一个带有搜索小部件的操作栏。我希望用户可以搜索应用程序附带的一些东西。因此,我想使用搜索小部件,显示一个结果列表,当用户使用新的字符(与Play商店相同的功能)时,该列表会自动更新。我已在我的活动中实施了SearchView.OnQueryTextListener,并实施了两种方法onQueryTextChange(String newText)onQueryTextSubmit(String query)。在onQueryTextChange我调用我的服务,它返回键入的建议的值。但我没有计划,如何显示建议清单。我阅读developer.android.com上的文章,但据我所知,它主要是针对旧的搜索实现(< Honeycomb)。在搜索窗口小部件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扩展SearchRecentSuggestionsProvider,但我不知道如何处理和创建此提供程序。我有一个searchable.xml,它引用searchSuggestAuthority给我的空白内容提供商。在AnroidManifest中,我向MainActivity添加了一个搜索意图,添加了元数据并添加了我的提供者。但我不知道如何将我的价值观提供给内容提供商并将其显示为建议。

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,

mybecks

1 个答案:

答案 0 :(得分:3)