onCreateOptionsMenu()在Fragment中不起作用



我正试图在我的Fragment中实现一个搜索过滤器,但它不允许我。我以前在Activity中使用过相同的代码,它成功了。每当我键入内容时,都不会调用onCreateOptionsMenu()。应用程序如下:[![应用程序图片][1]][1]正如你所看到的,我在顶部键入了一些内容,它不会被过滤。

我的片段代码:`

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
setMenuVisibility(false);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View RootView = inflater.inflate(R.layout.fragment_tab1, container, false);
if(getArguments() != null){
String yourText = getArguments().getString("interessen");
System.out.println(yourText);
}`

。.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menuevents, menu);
super.onCreateOptionsMenu(menu, inflater);
MenuItem searchitem = menu.findItem(R.id.searchEvent);
//searchitem.setVisible(false);
final SearchView searchView = (SearchView) searchitem.getActionView();
final List<Event> allEvents = new ArrayList<>();
allEvents.addAll(eventList);
searchitem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
eventList.clear();
eventList.addAll(allEvents);
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
eventList.clear();
eventList.addAll(allEvents);
return true;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
eventListAdapter.getFilter().filter(newText);
return false;
}
});

我没有在中复制EventListAdapter,因为这应该可以正常工作。只是Fragment无法访问SearchItem。

有人吗?:([1] :https://i.stack.imgur.com/JkLcL.png

您已经调用了setMenuVisibility(),这意味着您的Fragment特别选择不显示其菜单。预计当您的菜单未显示时,onCreateOptionsMenu()不会被触发。

删除这行代码,使您的菜单真正可见。

最新更新