Я пытаюсь использовать поиск на панели инструментов (меню) в нескольких фрагментах. Таким образом, если я переключусь на различные фрагменты, поисковое представление будет применяться и искать только этот фрагмент. После определения его в MainActivity, как мне использовать его во фрагментах?
Вы должны сохранять ссылки на свои фрагменты, как хотите. Затем, в зависимости от вашей ситуации, когда вы вводите запрос или любым другим способом, вам нужно выполнить поиск в вашем фрагменте, например:
myFragment.doSearch(query)
Если у вас есть список фрагментов и вам нужно сделать вызов только в видимом в данный момент, вы можете определить переменную isActuallyVisible
в каждом фрагменте (в BaseFragment, если он у вас есть) и изменить ее следующим образом:
public void setMenuVisibility(final boolean visible) {
super.setMenuVisibility(visible);
isActuallyVisible = visible;
}
Затем вы можете сделать поиск следующим образом:
for (Fragment frag : fragmentsList) {
if (frag.isActuallyVisible) {
frag.doSearch(query);
break;
}
}
Надеюсь, это поможет вам найти правильное решение
Вам необходимо реализовать метод поиска в каждом имеющемся у вас фрагменте и передать запрос из вашего MainActivity в тот фрагмент, где вы хотите выполнить поиск.
Хорошо, а как мне тогда обработать поисковый запрос во фрагменте? Я создаю все (меню и фрагменты в MainActivity), затем использую меню параметров для переключения на каждый фрагмент. Использую ли я настройки?