2010-12-09 2 views
1

Деятельность должна быть в состоянии предоставить контекстную информацию для поставщика контента, как это:Доступ к appSearchData мотки от ContentProvider

@Override 
public boolean onSearchRequested() { 
    Bundle appSearchData = new Bundle(); 
    appSearchData.putByte("category", category); 
    startSearch(null, false, appSearchData, false); 
    return true; 
} 

Поиска предложения и результаты от поставщика должны быть ограничены «категория», но я не удается найти, где можно получить доступ к набору appSearchData из моего ContentProvider.

+0

возможно дубликат [Передать параметр в пользовательских поисковых подсказках ContentProvider] (HTTP: // StackOverflow. com/questions/7947016/pass-a-parameter-to-a-custom-search-suggestion-contentprovider) – aleb 2013-12-03 13:05:51

ответ

0

Используйте это для onSearchRequested:

@Override 
public boolean onSearchRequested() { 
    SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE); 

    if(searchManager!=null) 
    { 
     // start the search with the appropriate searchable activity 
     // so we get the correct search hint in the search dialog 
      Bundle b = new Bundle(); 
      b.putString("context", indicator); 
      searchManager.startSearch(null, false,new ComponentName(this, YourClass.class), b, false); 
    return true; 
} 
return false; 
} 

И это ваш поиск класс:

Bundle b = intent.getBundleExtra(SearchManager.APP_DATA); 
+0

Где вы получаете намерение для второго примера кода? – 2011-02-18 11:14:21

Смежные вопросы